deepsea-components 5.16.11 → 5.16.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -166,6 +166,12 @@ function DraggableGridItem(t0) {
|
|
|
166
166
|
} else t3 = $[18];
|
|
167
167
|
return t3;
|
|
168
168
|
}
|
|
169
|
+
function isLegalOrderMap({ orders, keys, orderMap }) {
|
|
170
|
+
if (!isTheSameIterable(orderMap.keys(), keys)) return false;
|
|
171
|
+
const values = Array.from(orderMap.values());
|
|
172
|
+
if (values.some((value)=>!orders.includes(value))) return false;
|
|
173
|
+
return values.length === new Set(values).size;
|
|
174
|
+
}
|
|
169
175
|
function DraggableGrid({ className, classNames, style, items = [], disabled, columns, rows, gap = 0, gapX = gap, gapY = gap, itemWidth, itemHeight, orderMap, onOrderMapChange, render, keyExtractor, isItemDisabled: _isItemDisabled, isOrderDisabled, orderPriority, handle, onDragMoveStart: _onDragMoveStart, onDragMove: _onDragMove, onDragMoveEnd: _onDragMoveEnd, ...rest }) {
|
|
170
176
|
const keyToItem_0 = (0, external_react_namespaceObject.useMemo)(()=>{
|
|
171
177
|
const keyToItem = new Map();
|
|
@@ -173,7 +179,6 @@ function DraggableGrid({ className, classNames, style, items = [], disabled, col
|
|
|
173
179
|
const key = keyExtractor ? keyExtractor(item) : item;
|
|
174
180
|
keyToItem.set(key, item);
|
|
175
181
|
});
|
|
176
|
-
console.log(keyToItem);
|
|
177
182
|
return keyToItem;
|
|
178
183
|
}, [
|
|
179
184
|
items,
|
|
@@ -192,9 +197,13 @@ function DraggableGrid({ className, classNames, style, items = [], disabled, col
|
|
|
192
197
|
orderPriority
|
|
193
198
|
]);
|
|
194
199
|
const [keyToOrder, setKeyToOrder] = (0, external_react_namespaceObject.useState)(()=>{
|
|
195
|
-
if (orderMap
|
|
200
|
+
if (orderMap && isLegalOrderMap({
|
|
201
|
+
orders: orders_0,
|
|
202
|
+
keys: keyToItem_0.keys(),
|
|
203
|
+
orderMap
|
|
204
|
+
})) return orderMap;
|
|
196
205
|
const newOrderMap = getOrderMap({
|
|
197
|
-
prev:
|
|
206
|
+
prev: orderMap,
|
|
198
207
|
orders: orders_0,
|
|
199
208
|
keys: Array.from(keyToItem_0.keys()),
|
|
200
209
|
orderPriority
|
|
@@ -256,7 +265,11 @@ function DraggableGrid({ className, classNames, style, items = [], disabled, col
|
|
|
256
265
|
]);
|
|
257
266
|
(0, external_react_namespaceObject.useEffect)(()=>{
|
|
258
267
|
if (orderMap === keyToOrder) return;
|
|
259
|
-
if (orderMap
|
|
268
|
+
if (!!orderMap && isLegalOrderMap({
|
|
269
|
+
orders: orders_0,
|
|
270
|
+
keys: keyToItem_0.keys(),
|
|
271
|
+
orderMap
|
|
272
|
+
})) setKeyToOrder(orderMap);
|
|
260
273
|
else null == onOrderMapChange || onOrderMapChange(keyToOrder);
|
|
261
274
|
}, [
|
|
262
275
|
orderMap,
|
|
@@ -128,6 +128,12 @@ function DraggableGridItem(t0) {
|
|
|
128
128
|
} else t3 = $[18];
|
|
129
129
|
return t3;
|
|
130
130
|
}
|
|
131
|
+
function isLegalOrderMap({ orders, keys, orderMap }) {
|
|
132
|
+
if (!isTheSameIterable(orderMap.keys(), keys)) return false;
|
|
133
|
+
const values = Array.from(orderMap.values());
|
|
134
|
+
if (values.some((value)=>!orders.includes(value))) return false;
|
|
135
|
+
return values.length === new Set(values).size;
|
|
136
|
+
}
|
|
131
137
|
function DraggableGrid({ className, classNames, style, items = [], disabled, columns, rows, gap = 0, gapX = gap, gapY = gap, itemWidth, itemHeight, orderMap, onOrderMapChange, render, keyExtractor, isItemDisabled: _isItemDisabled, isOrderDisabled, orderPriority, handle, onDragMoveStart: _onDragMoveStart, onDragMove: _onDragMove, onDragMoveEnd: _onDragMoveEnd, ...rest }) {
|
|
132
138
|
const keyToItem_0 = useMemo(()=>{
|
|
133
139
|
const keyToItem = new Map();
|
|
@@ -135,7 +141,6 @@ function DraggableGrid({ className, classNames, style, items = [], disabled, col
|
|
|
135
141
|
const key = keyExtractor ? keyExtractor(item) : item;
|
|
136
142
|
keyToItem.set(key, item);
|
|
137
143
|
});
|
|
138
|
-
console.log(keyToItem);
|
|
139
144
|
return keyToItem;
|
|
140
145
|
}, [
|
|
141
146
|
items,
|
|
@@ -154,9 +159,13 @@ function DraggableGrid({ className, classNames, style, items = [], disabled, col
|
|
|
154
159
|
orderPriority
|
|
155
160
|
]);
|
|
156
161
|
const [keyToOrder, setKeyToOrder] = useState(()=>{
|
|
157
|
-
if (orderMap
|
|
162
|
+
if (orderMap && isLegalOrderMap({
|
|
163
|
+
orders: orders_0,
|
|
164
|
+
keys: keyToItem_0.keys(),
|
|
165
|
+
orderMap
|
|
166
|
+
})) return orderMap;
|
|
158
167
|
const newOrderMap = getOrderMap({
|
|
159
|
-
prev:
|
|
168
|
+
prev: orderMap,
|
|
160
169
|
orders: orders_0,
|
|
161
170
|
keys: Array.from(keyToItem_0.keys()),
|
|
162
171
|
orderPriority
|
|
@@ -218,7 +227,11 @@ function DraggableGrid({ className, classNames, style, items = [], disabled, col
|
|
|
218
227
|
]);
|
|
219
228
|
useEffect(()=>{
|
|
220
229
|
if (orderMap === keyToOrder) return;
|
|
221
|
-
if (orderMap
|
|
230
|
+
if (!!orderMap && isLegalOrderMap({
|
|
231
|
+
orders: orders_0,
|
|
232
|
+
keys: keyToItem_0.keys(),
|
|
233
|
+
orderMap
|
|
234
|
+
})) setKeyToOrder(orderMap);
|
|
222
235
|
else null == onOrderMapChange || onOrderMapChange(keyToOrder);
|
|
223
236
|
}, [
|
|
224
237
|
orderMap,
|
package/package.json
CHANGED
|
@@ -248,6 +248,20 @@ interface DraggingItem<K extends Key> {
|
|
|
248
248
|
keyToOrder: DraggableGridKeyToOrder<K>
|
|
249
249
|
}
|
|
250
250
|
|
|
251
|
+
interface IsLegalOrderMapParams<K extends Key> {
|
|
252
|
+
orders: number[]
|
|
253
|
+
keys: Iterable<K>
|
|
254
|
+
orderMap: DraggableGridKeyToOrder<K>
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/** 检查 orderMap 是否合法 */
|
|
258
|
+
function isLegalOrderMap<K extends Key>({ orders, keys, orderMap }: IsLegalOrderMapParams<K>) {
|
|
259
|
+
if (!isTheSameIterable(orderMap.keys(), keys)) return false
|
|
260
|
+
const values = Array.from(orderMap.values())
|
|
261
|
+
if (values.some(value => !orders.includes(value))) return false
|
|
262
|
+
return values.length === new Set(values).size
|
|
263
|
+
}
|
|
264
|
+
|
|
251
265
|
export function DraggableGrid<T, K extends Key = T extends Key ? T : never>({
|
|
252
266
|
className,
|
|
253
267
|
classNames,
|
|
@@ -280,7 +294,6 @@ export function DraggableGrid<T, K extends Key = T extends Key ? T : never>({
|
|
|
280
294
|
const key = keyExtractor ? keyExtractor(item) : (item as unknown as K)
|
|
281
295
|
keyToItem.set(key, item)
|
|
282
296
|
})
|
|
283
|
-
console.log(keyToItem)
|
|
284
297
|
return keyToItem
|
|
285
298
|
}, [items, keyExtractor])
|
|
286
299
|
|
|
@@ -300,8 +313,8 @@ export function DraggableGrid<T, K extends Key = T extends Key ? T : never>({
|
|
|
300
313
|
|
|
301
314
|
/** 元素的 key 到次序的映射 */
|
|
302
315
|
const [keyToOrder, setKeyToOrder] = useState(() => {
|
|
303
|
-
if (orderMap) return orderMap
|
|
304
|
-
const newOrderMap = getOrderMap({ prev:
|
|
316
|
+
if (orderMap && isLegalOrderMap({ orders, keys: keyToItem.keys(), orderMap })) return orderMap
|
|
317
|
+
const newOrderMap = getOrderMap({ prev: orderMap, orders, keys: Array.from(keyToItem.keys()), orderPriority })
|
|
305
318
|
onOrderMapChange?.(newOrderMap)
|
|
306
319
|
return newOrderMap
|
|
307
320
|
})
|
|
@@ -355,7 +368,7 @@ export function DraggableGrid<T, K extends Key = T extends Key ? T : never>({
|
|
|
355
368
|
/** 受控 */
|
|
356
369
|
useEffect(() => {
|
|
357
370
|
if (orderMap === keyToOrder) return
|
|
358
|
-
if (!!orderMap) setKeyToOrder(orderMap)
|
|
371
|
+
if (!!orderMap && isLegalOrderMap({ orders, keys: keyToItem.keys(), orderMap })) setKeyToOrder(orderMap)
|
|
359
372
|
else onOrderMapChange?.(keyToOrder)
|
|
360
373
|
}, [orderMap, keyToOrder, onOrderMapChange])
|
|
361
374
|
|