@duskmoon-dev/components 0.5.3 → 0.5.4
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.
- package/dist/components/dm-pro-table/index.js +106 -18
- package/dist/components/dm-query/index.js +102 -14
- package/dist/components/dm-search/index.js +100 -12
- package/dist/components/dm-table/index.js +100 -12
- package/dist/components/json-schema-form/index.js +108 -20
- package/dist/components/select/Select.types.d.ts +4 -0
- package/dist/components/select/index.js +98 -10
- package/dist/generated/version.d.ts +1 -1
- package/dist/index.js +189 -101
- package/dist/infrastructure.js +1 -1
- package/dist/styles.css +41 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -107,7 +107,7 @@ function duskmoonMerge(classes) {
|
|
|
107
107
|
import { useCallback as useCallback2, useState as useState2 } from "react";
|
|
108
108
|
|
|
109
109
|
// src/generated/version.ts
|
|
110
|
-
var version = "0.5.
|
|
110
|
+
var version = "0.5.4";
|
|
111
111
|
|
|
112
112
|
// src/infrastructure.ts
|
|
113
113
|
var theme = {
|
|
@@ -9098,7 +9098,7 @@ function getDmTableClasses({ className }) {
|
|
|
9098
9098
|
// src/components/dm-search/DmSearch.tsx
|
|
9099
9099
|
import {
|
|
9100
9100
|
forwardRef as forwardRef40,
|
|
9101
|
-
useEffect as
|
|
9101
|
+
useEffect as useEffect20,
|
|
9102
9102
|
useImperativeHandle as useImperativeHandle6,
|
|
9103
9103
|
useMemo as useMemo19,
|
|
9104
9104
|
useState as useState30
|
|
@@ -9121,7 +9121,15 @@ function getDmSearchClasses({
|
|
|
9121
9121
|
}
|
|
9122
9122
|
|
|
9123
9123
|
// src/components/select/Select.tsx
|
|
9124
|
-
import React45, {
|
|
9124
|
+
import React45, {
|
|
9125
|
+
forwardRef as forwardRef39,
|
|
9126
|
+
useCallback as useCallback7,
|
|
9127
|
+
useEffect as useEffect19,
|
|
9128
|
+
useId as useId10,
|
|
9129
|
+
useMemo as useMemo18,
|
|
9130
|
+
useRef as useRef15,
|
|
9131
|
+
useState as useState29
|
|
9132
|
+
} from "react";
|
|
9125
9133
|
|
|
9126
9134
|
// src/classes/select.ts
|
|
9127
9135
|
var selectContainerClass = "select-container";
|
|
@@ -9275,6 +9283,7 @@ var SelectRoot = forwardRef39(({
|
|
|
9275
9283
|
"aria-required": ariaRequired,
|
|
9276
9284
|
children,
|
|
9277
9285
|
className,
|
|
9286
|
+
defaultOpen = false,
|
|
9278
9287
|
defaultValue,
|
|
9279
9288
|
disabled,
|
|
9280
9289
|
filterOption,
|
|
@@ -9282,6 +9291,9 @@ var SelectRoot = forwardRef39(({
|
|
|
9282
9291
|
loading,
|
|
9283
9292
|
mode,
|
|
9284
9293
|
onChange,
|
|
9294
|
+
onDropdownVisibleChange,
|
|
9295
|
+
onOpenChange,
|
|
9296
|
+
open: openProp,
|
|
9285
9297
|
options,
|
|
9286
9298
|
placeholder,
|
|
9287
9299
|
showSearch,
|
|
@@ -9290,10 +9302,60 @@ var SelectRoot = forwardRef39(({
|
|
|
9290
9302
|
value,
|
|
9291
9303
|
...props
|
|
9292
9304
|
}, ref) => {
|
|
9305
|
+
const generatedId = useId10();
|
|
9306
|
+
const cleanId = generatedId.replace(/[^a-zA-Z0-9_-]/g, "");
|
|
9307
|
+
const triggerId = id || `select-${cleanId}`;
|
|
9308
|
+
const dropdownId = `select-dropdown-${cleanId}`;
|
|
9309
|
+
const anchorName = `--dm-select-${cleanId}`;
|
|
9310
|
+
const [internalOpen, setInternalOpen] = useState29(Boolean(defaultOpen));
|
|
9311
|
+
const isControlled = openProp !== undefined;
|
|
9312
|
+
const isOpen = isControlled ? Boolean(openProp) : internalOpen;
|
|
9313
|
+
const containerRef = useRef15(null);
|
|
9314
|
+
const dropdownRef = useRef15(null);
|
|
9315
|
+
const setOpenState = useCallback7((nextOpen) => {
|
|
9316
|
+
if (!isControlled) {
|
|
9317
|
+
setInternalOpen(nextOpen);
|
|
9318
|
+
}
|
|
9319
|
+
onDropdownVisibleChange?.(nextOpen);
|
|
9320
|
+
onOpenChange?.(nextOpen);
|
|
9321
|
+
}, [isControlled, onDropdownVisibleChange, onOpenChange]);
|
|
9322
|
+
useEffect19(() => {
|
|
9323
|
+
const dropdown = dropdownRef.current;
|
|
9324
|
+
if (!dropdown || typeof dropdown.showPopover !== "function")
|
|
9325
|
+
return;
|
|
9326
|
+
if (isOpen && !dropdown.matches(":popover-open")) {
|
|
9327
|
+
try {
|
|
9328
|
+
dropdown.showPopover();
|
|
9329
|
+
} catch {}
|
|
9330
|
+
} else if (!isOpen && dropdown.matches(":popover-open")) {
|
|
9331
|
+
try {
|
|
9332
|
+
dropdown.hidePopover();
|
|
9333
|
+
} catch {}
|
|
9334
|
+
}
|
|
9335
|
+
}, [isOpen]);
|
|
9336
|
+
useEffect19(() => {
|
|
9337
|
+
if (!isOpen)
|
|
9338
|
+
return;
|
|
9339
|
+
const handlePointerDown = (event) => {
|
|
9340
|
+
const target = event.target;
|
|
9341
|
+
if (!target)
|
|
9342
|
+
return;
|
|
9343
|
+
if (containerRef.current?.contains(target))
|
|
9344
|
+
return;
|
|
9345
|
+
if (dropdownRef.current?.contains(target))
|
|
9346
|
+
return;
|
|
9347
|
+
setOpenState(false);
|
|
9348
|
+
};
|
|
9349
|
+
document.addEventListener("mousedown", handlePointerDown);
|
|
9350
|
+
document.addEventListener("touchstart", handlePointerDown);
|
|
9351
|
+
return () => {
|
|
9352
|
+
document.removeEventListener("mousedown", handlePointerDown);
|
|
9353
|
+
document.removeEventListener("touchstart", handlePointerDown);
|
|
9354
|
+
};
|
|
9355
|
+
}, [isOpen, setOpenState]);
|
|
9293
9356
|
const multiple = mode === "multiple" || mode === "tags";
|
|
9294
9357
|
const sourceOptions = useMemo18(() => options ?? optionsFromChildren2(children), [children, options]);
|
|
9295
9358
|
const flatOptions = useMemo18(() => flattenOptions(sourceOptions), [sourceOptions]);
|
|
9296
|
-
const [open, setOpen] = useState29(false);
|
|
9297
9359
|
const [searchValue, setSearchValue] = useState29("");
|
|
9298
9360
|
const [internalValue, setInternalValue] = useState29(multiple ? normalizeMultiValue(defaultValue) : normalizeSingleValue2(defaultValue));
|
|
9299
9361
|
const controlled = value !== undefined;
|
|
@@ -9328,7 +9390,7 @@ var SelectRoot = forwardRef39(({
|
|
|
9328
9390
|
emitChange(nextValues);
|
|
9329
9391
|
} else {
|
|
9330
9392
|
emitChange(option.value);
|
|
9331
|
-
|
|
9393
|
+
setOpenState(false);
|
|
9332
9394
|
}
|
|
9333
9395
|
setSearchValue("");
|
|
9334
9396
|
}
|
|
@@ -9384,15 +9446,23 @@ var SelectRoot = forwardRef39(({
|
|
|
9384
9446
|
}, `group-${index}`);
|
|
9385
9447
|
});
|
|
9386
9448
|
}
|
|
9449
|
+
const setRefs = (node) => {
|
|
9450
|
+
containerRef.current = node;
|
|
9451
|
+
if (typeof ref === "function") {
|
|
9452
|
+
ref(node);
|
|
9453
|
+
} else if (ref) {
|
|
9454
|
+
ref.current = node;
|
|
9455
|
+
}
|
|
9456
|
+
};
|
|
9387
9457
|
const selection = multiple ? selectedOptions.map((option) => /* @__PURE__ */ jsx49("span", {
|
|
9388
9458
|
className: selectTagClass,
|
|
9389
9459
|
children: renderValue(option)
|
|
9390
9460
|
}, valueKey2(option.value))) : renderValue(selectedOptions[0]);
|
|
9391
9461
|
return /* @__PURE__ */ jsxs35("div", {
|
|
9392
9462
|
...props,
|
|
9393
|
-
ref,
|
|
9463
|
+
ref: setRefs,
|
|
9394
9464
|
className: getSelectContainerClasses({
|
|
9395
|
-
open,
|
|
9465
|
+
open: isOpen,
|
|
9396
9466
|
loading,
|
|
9397
9467
|
disabled,
|
|
9398
9468
|
full: true,
|
|
@@ -9401,7 +9471,7 @@ var SelectRoot = forwardRef39(({
|
|
|
9401
9471
|
children: [
|
|
9402
9472
|
/* @__PURE__ */ jsxs35("button", {
|
|
9403
9473
|
type: "button",
|
|
9404
|
-
id,
|
|
9474
|
+
id: triggerId,
|
|
9405
9475
|
className: getSelectClasses({ size, status, disabled }),
|
|
9406
9476
|
disabled: disabled || loading,
|
|
9407
9477
|
"aria-describedby": ariaDescribedBy,
|
|
@@ -9411,8 +9481,14 @@ var SelectRoot = forwardRef39(({
|
|
|
9411
9481
|
"aria-labelledby": ariaLabelledBy,
|
|
9412
9482
|
"aria-required": ariaRequired,
|
|
9413
9483
|
"aria-haspopup": "listbox",
|
|
9414
|
-
"aria-expanded":
|
|
9415
|
-
|
|
9484
|
+
"aria-expanded": isOpen,
|
|
9485
|
+
"aria-controls": dropdownId,
|
|
9486
|
+
style: { anchorName },
|
|
9487
|
+
onClick: () => {
|
|
9488
|
+
if (disabled || loading)
|
|
9489
|
+
return;
|
|
9490
|
+
setOpenState(!isOpen);
|
|
9491
|
+
},
|
|
9416
9492
|
children: [
|
|
9417
9493
|
/* @__PURE__ */ jsx49("span", {
|
|
9418
9494
|
className: selectSelectionClass,
|
|
@@ -9460,10 +9536,22 @@ var SelectRoot = forwardRef39(({
|
|
|
9460
9536
|
})
|
|
9461
9537
|
})
|
|
9462
9538
|
}) : null,
|
|
9463
|
-
|
|
9464
|
-
|
|
9539
|
+
isOpen ? /* @__PURE__ */ jsxs35("div", {
|
|
9540
|
+
id: dropdownId,
|
|
9541
|
+
ref: dropdownRef,
|
|
9542
|
+
popover: "auto",
|
|
9465
9543
|
role: "listbox",
|
|
9466
9544
|
"aria-multiselectable": multiple || undefined,
|
|
9545
|
+
className: selectDropdownClass,
|
|
9546
|
+
style: { positionAnchor: anchorName },
|
|
9547
|
+
onToggle: (event) => {
|
|
9548
|
+
if (event.target !== event.currentTarget)
|
|
9549
|
+
return;
|
|
9550
|
+
const nextOpen = event.nativeEvent?.newState === "open";
|
|
9551
|
+
if (nextOpen !== isOpen) {
|
|
9552
|
+
setOpenState(nextOpen);
|
|
9553
|
+
}
|
|
9554
|
+
},
|
|
9467
9555
|
children: [
|
|
9468
9556
|
searchable ? /* @__PURE__ */ jsx49("input", {
|
|
9469
9557
|
className: selectSearchClass,
|
|
@@ -9597,7 +9685,7 @@ var DmSearch = forwardRef40(({
|
|
|
9597
9685
|
const controlled = controlledValues !== undefined;
|
|
9598
9686
|
const values = controlled ? controlledValues : internalValues;
|
|
9599
9687
|
const visibleItems = collapsed ? allItems.slice(0, 1) : allItems;
|
|
9600
|
-
|
|
9688
|
+
useEffect20(() => {
|
|
9601
9689
|
if (!controlled)
|
|
9602
9690
|
setValues(initialValues(allItems, searchParams));
|
|
9603
9691
|
}, [allItems, searchParams, controlled]);
|
|
@@ -10588,7 +10676,7 @@ function DmProTable({
|
|
|
10588
10676
|
}
|
|
10589
10677
|
DmProTable.displayName = "DmProTable";
|
|
10590
10678
|
// src/components/dm-provider/DmProvider.tsx
|
|
10591
|
-
import { forwardRef as forwardRef42, useEffect as
|
|
10679
|
+
import { forwardRef as forwardRef42, useEffect as useEffect21, useState as useState33 } from "react";
|
|
10592
10680
|
|
|
10593
10681
|
// src/classes/dm-provider.ts
|
|
10594
10682
|
var dmProviderClass = "dm-provider";
|
|
@@ -10609,17 +10697,17 @@ var DmProvider = forwardRef42(({
|
|
|
10609
10697
|
...props
|
|
10610
10698
|
}, ref) => {
|
|
10611
10699
|
const [currentTheme, setCurrentTheme] = useState33(() => getDmTheme());
|
|
10612
|
-
|
|
10700
|
+
useEffect21(() => {
|
|
10613
10701
|
return onDmThemeUpdate(() => {
|
|
10614
10702
|
setCurrentTheme(getDmTheme());
|
|
10615
10703
|
});
|
|
10616
10704
|
}, []);
|
|
10617
|
-
|
|
10705
|
+
useEffect21(() => {
|
|
10618
10706
|
if (prefixCls) {
|
|
10619
10707
|
setDmPrefixCls(prefixCls);
|
|
10620
10708
|
}
|
|
10621
10709
|
}, [prefixCls]);
|
|
10622
|
-
|
|
10710
|
+
useEffect21(() => {
|
|
10623
10711
|
const colorPrimary = theme?.token?.colorPrimary;
|
|
10624
10712
|
if (typeof colorPrimary === "string") {
|
|
10625
10713
|
setDmPrimaryColor(colorPrimary);
|
|
@@ -10642,7 +10730,7 @@ DmProvider.displayName = "DmProvider";
|
|
|
10642
10730
|
import {
|
|
10643
10731
|
forwardRef as forwardRef43,
|
|
10644
10732
|
useImperativeHandle as useImperativeHandle7,
|
|
10645
|
-
useRef as
|
|
10733
|
+
useRef as useRef16,
|
|
10646
10734
|
useState as useState34
|
|
10647
10735
|
} from "react";
|
|
10648
10736
|
import { jsx as jsx55 } from "react/jsx-runtime";
|
|
@@ -10667,7 +10755,7 @@ var DmQuery = forwardRef43(({
|
|
|
10667
10755
|
onSearch,
|
|
10668
10756
|
...props
|
|
10669
10757
|
}, ref) => {
|
|
10670
|
-
const searchRef =
|
|
10758
|
+
const searchRef = useRef16(null);
|
|
10671
10759
|
const [selectedItem, setSelectedItem] = useState34(queryItem[0]);
|
|
10672
10760
|
const items = selectedItem ? [toSearchItem(selectedItem)] : queryItem.map(toSearchItem);
|
|
10673
10761
|
useImperativeHandle7(ref, () => ({
|
|
@@ -10692,7 +10780,7 @@ import React52, {
|
|
|
10692
10780
|
Children as Children2,
|
|
10693
10781
|
forwardRef as forwardRef45,
|
|
10694
10782
|
isValidElement as isValidElement2,
|
|
10695
|
-
useEffect as
|
|
10783
|
+
useEffect as useEffect22,
|
|
10696
10784
|
useMemo as useMemo23,
|
|
10697
10785
|
useState as useState36
|
|
10698
10786
|
} from "react";
|
|
@@ -10989,7 +11077,7 @@ var DmSplitterRoot = forwardRef45(({
|
|
|
10989
11077
|
const hasPersistence = Boolean(key);
|
|
10990
11078
|
const shouldRenderReset = resettable ?? hasPersistence;
|
|
10991
11079
|
const gapValue = typeof gap === "number" ? `${gap}px` : gap;
|
|
10992
|
-
|
|
11080
|
+
useEffect22(() => {
|
|
10993
11081
|
if (!key || persistence?.persistenceType === "localStorage")
|
|
10994
11082
|
return;
|
|
10995
11083
|
if (!persistence?.persistenceType)
|
|
@@ -11171,7 +11259,7 @@ var Empty = EmptyBase;
|
|
|
11171
11259
|
Empty.PRESENTED_IMAGE_DEFAULT = defaultImage;
|
|
11172
11260
|
Empty.PRESENTED_IMAGE_SIMPLE = simpleImage;
|
|
11173
11261
|
// src/components/spin/Spin.tsx
|
|
11174
|
-
import { forwardRef as forwardRef47, useEffect as
|
|
11262
|
+
import { forwardRef as forwardRef47, useEffect as useEffect23, useState as useState37 } from "react";
|
|
11175
11263
|
|
|
11176
11264
|
// src/classes/spin.ts
|
|
11177
11265
|
var spinBaseClass = "spin";
|
|
@@ -11205,7 +11293,7 @@ function setDefaultIndicator(indicator) {
|
|
|
11205
11293
|
function useDelayedSpinning(spinning, delay) {
|
|
11206
11294
|
const [delayedActive, setDelayedActive] = useState37(false);
|
|
11207
11295
|
const hasDelay = Boolean(delay && delay > 0);
|
|
11208
|
-
|
|
11296
|
+
useEffect23(() => {
|
|
11209
11297
|
if (!hasDelay) {
|
|
11210
11298
|
return;
|
|
11211
11299
|
}
|
|
@@ -11432,8 +11520,8 @@ import {
|
|
|
11432
11520
|
Fragment as Fragment11,
|
|
11433
11521
|
forwardRef as forwardRef49,
|
|
11434
11522
|
isValidElement as isValidElement3,
|
|
11435
|
-
useId as
|
|
11436
|
-
useRef as
|
|
11523
|
+
useId as useId11,
|
|
11524
|
+
useRef as useRef17,
|
|
11437
11525
|
useState as useState38
|
|
11438
11526
|
} from "react";
|
|
11439
11527
|
|
|
@@ -11585,13 +11673,13 @@ var TabsBase = forwardRef49(({
|
|
|
11585
11673
|
id,
|
|
11586
11674
|
...props
|
|
11587
11675
|
}, ref) => {
|
|
11588
|
-
const reactId =
|
|
11676
|
+
const reactId = useId11();
|
|
11589
11677
|
const tabsId = id ?? `tabs-${reactId}`;
|
|
11590
11678
|
const finalItems = normalizeItems(items, children);
|
|
11591
11679
|
const [internalActiveKey, setInternalActiveKey] = useState38(() => getInitialActiveKey(finalItems, defaultActiveKey));
|
|
11592
11680
|
const isControlled = activeKey !== undefined;
|
|
11593
11681
|
const selectedKey = getCurrentActiveKey(finalItems, isControlled ? activeKey : internalActiveKey);
|
|
11594
|
-
const tabRefs =
|
|
11682
|
+
const tabRefs = useRef17([]);
|
|
11595
11683
|
const editable = isEditable(type);
|
|
11596
11684
|
function changeActive(nextKey) {
|
|
11597
11685
|
if (nextKey === selectedKey)
|
|
@@ -12572,11 +12660,11 @@ var DmTree = (props) => {
|
|
|
12572
12660
|
// src/components/dm-truncate/DmTruncate.tsx
|
|
12573
12661
|
import {
|
|
12574
12662
|
forwardRef as forwardRef53,
|
|
12575
|
-
useCallback as
|
|
12576
|
-
useEffect as
|
|
12663
|
+
useCallback as useCallback8,
|
|
12664
|
+
useEffect as useEffect25,
|
|
12577
12665
|
useLayoutEffect as useLayoutEffect3,
|
|
12578
12666
|
useMemo as useMemo26,
|
|
12579
|
-
useRef as
|
|
12667
|
+
useRef as useRef19,
|
|
12580
12668
|
useState as useState42
|
|
12581
12669
|
} from "react";
|
|
12582
12670
|
|
|
@@ -12601,7 +12689,7 @@ function getDmTruncateTextClasses({
|
|
|
12601
12689
|
}
|
|
12602
12690
|
|
|
12603
12691
|
// src/components/tooltip/Tooltip.tsx
|
|
12604
|
-
import React59, { forwardRef as forwardRef52, useEffect as
|
|
12692
|
+
import React59, { forwardRef as forwardRef52, useEffect as useEffect24, useId as useId12, useRef as useRef18, useState as useState41 } from "react";
|
|
12605
12693
|
|
|
12606
12694
|
// src/classes/tooltip.ts
|
|
12607
12695
|
var tooltipWrapperClass = "tooltip-wrapper";
|
|
@@ -12651,22 +12739,22 @@ var Tooltip = forwardRef52(({
|
|
|
12651
12739
|
const [internalOpen, setInternalOpen] = useState41(Boolean(defaultOpen));
|
|
12652
12740
|
const isControlled = open !== undefined;
|
|
12653
12741
|
const visible = isControlled ? open : internalOpen;
|
|
12654
|
-
const reactId =
|
|
12742
|
+
const reactId = useId12();
|
|
12655
12743
|
const tooltipId = props.id !== undefined ? `${props.id}-tooltip` : `${reactId}-tooltip`;
|
|
12656
12744
|
const anchor = `--tooltip-${reactId.replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
12657
|
-
const surfaceRef =
|
|
12658
|
-
const hoveredRef =
|
|
12659
|
-
const focusedRef =
|
|
12660
|
-
const interactionOpenRef =
|
|
12661
|
-
const visibleRef =
|
|
12662
|
-
const controlledRef =
|
|
12663
|
-
const onOpenChangeRef =
|
|
12745
|
+
const surfaceRef = useRef18(null);
|
|
12746
|
+
const hoveredRef = useRef18(false);
|
|
12747
|
+
const focusedRef = useRef18(false);
|
|
12748
|
+
const interactionOpenRef = useRef18(false);
|
|
12749
|
+
const visibleRef = useRef18(visible);
|
|
12750
|
+
const controlledRef = useRef18(isControlled);
|
|
12751
|
+
const onOpenChangeRef = useRef18(onOpenChange);
|
|
12664
12752
|
visibleRef.current = visible;
|
|
12665
12753
|
controlledRef.current = isControlled;
|
|
12666
12754
|
onOpenChangeRef.current = onOpenChange;
|
|
12667
12755
|
const hasTitle = Boolean(title);
|
|
12668
12756
|
const nativeInterest = !isControlled && React59.isValidElement(children) && (typeof children.type !== "string" || children.type === "button" || children.type === "a") && children.type !== React59.Fragment;
|
|
12669
|
-
|
|
12757
|
+
useEffect24(() => {
|
|
12670
12758
|
const surface = surfaceRef.current;
|
|
12671
12759
|
if (!surface)
|
|
12672
12760
|
return;
|
|
@@ -12692,14 +12780,14 @@ var Tooltip = forwardRef52(({
|
|
|
12692
12780
|
surface.addEventListener("toggle", handleToggle);
|
|
12693
12781
|
return () => surface.removeEventListener("toggle", handleToggle);
|
|
12694
12782
|
}, [hasTitle, isControlled, nativeInterest]);
|
|
12695
|
-
|
|
12783
|
+
useEffect24(() => {
|
|
12696
12784
|
const surface = surfaceRef.current;
|
|
12697
12785
|
return () => {
|
|
12698
12786
|
if (surface?.matches(":popover-open"))
|
|
12699
12787
|
surface.hidePopover();
|
|
12700
12788
|
};
|
|
12701
12789
|
}, [hasTitle, isControlled, nativeInterest]);
|
|
12702
|
-
|
|
12790
|
+
useEffect24(() => {
|
|
12703
12791
|
const surface = surfaceRef.current;
|
|
12704
12792
|
if (!surface)
|
|
12705
12793
|
return;
|
|
@@ -12709,7 +12797,7 @@ var Tooltip = forwardRef52(({
|
|
|
12709
12797
|
surface.hidePopover();
|
|
12710
12798
|
}
|
|
12711
12799
|
}, [visible, hasTitle, isControlled]);
|
|
12712
|
-
|
|
12800
|
+
useEffect24(() => {
|
|
12713
12801
|
if (!isControlled || !visible || !hasTitle)
|
|
12714
12802
|
return;
|
|
12715
12803
|
const wrapper = surfaceRef.current?.parentElement;
|
|
@@ -12875,10 +12963,10 @@ var DmTruncate = forwardRef53(({
|
|
|
12875
12963
|
onCopy,
|
|
12876
12964
|
...props
|
|
12877
12965
|
}, ref) => {
|
|
12878
|
-
const wrapperRef =
|
|
12879
|
-
const textRef =
|
|
12880
|
-
const measureRef =
|
|
12881
|
-
const copyTimerRef =
|
|
12966
|
+
const wrapperRef = useRef19(null);
|
|
12967
|
+
const textRef = useRef19(null);
|
|
12968
|
+
const measureRef = useRef19(null);
|
|
12969
|
+
const copyTimerRef = useRef19(null);
|
|
12882
12970
|
const [overflow, setOverflow] = useState42(false);
|
|
12883
12971
|
const [copied, setCopied] = useState42(false);
|
|
12884
12972
|
const textValue = toPlainText(children);
|
|
@@ -12914,7 +13002,7 @@ var DmTruncate = forwardRef53(({
|
|
|
12914
13002
|
textStyle,
|
|
12915
13003
|
tooltipPreserveLineBreak
|
|
12916
13004
|
]);
|
|
12917
|
-
const measure =
|
|
13005
|
+
const measure = useCallback8(() => {
|
|
12918
13006
|
const wrapper = wrapperRef.current;
|
|
12919
13007
|
const text = textRef.current;
|
|
12920
13008
|
const measureNode = measureRef.current;
|
|
@@ -12934,14 +13022,14 @@ var DmTruncate = forwardRef53(({
|
|
|
12934
13022
|
useLayoutEffect3(() => {
|
|
12935
13023
|
measure();
|
|
12936
13024
|
}, [measure, textValue]);
|
|
12937
|
-
|
|
13025
|
+
useEffect25(() => {
|
|
12938
13026
|
if (typeof window === "undefined") {
|
|
12939
13027
|
return;
|
|
12940
13028
|
}
|
|
12941
13029
|
window.addEventListener("resize", measure);
|
|
12942
13030
|
return () => window.removeEventListener("resize", measure);
|
|
12943
13031
|
}, [measure]);
|
|
12944
|
-
|
|
13032
|
+
useEffect25(() => {
|
|
12945
13033
|
return () => {
|
|
12946
13034
|
if (copyTimerRef.current) {
|
|
12947
13035
|
window.clearTimeout(copyTimerRef.current);
|
|
@@ -13110,8 +13198,8 @@ import React62, {
|
|
|
13110
13198
|
createContext as createContext6,
|
|
13111
13199
|
forwardRef as forwardRef55,
|
|
13112
13200
|
useContext as useContext6,
|
|
13113
|
-
useEffect as
|
|
13114
|
-
useRef as
|
|
13201
|
+
useEffect as useEffect26,
|
|
13202
|
+
useRef as useRef20,
|
|
13115
13203
|
useState as useState43
|
|
13116
13204
|
} from "react";
|
|
13117
13205
|
|
|
@@ -13345,9 +13433,9 @@ var FloatButtonBackTop = forwardRef55(({
|
|
|
13345
13433
|
...props
|
|
13346
13434
|
}, ref) => {
|
|
13347
13435
|
const [visible, setVisible] = useState43(false);
|
|
13348
|
-
const visibleRef =
|
|
13436
|
+
const visibleRef = useRef20(visible);
|
|
13349
13437
|
visibleRef.current = visible;
|
|
13350
|
-
|
|
13438
|
+
useEffect26(() => {
|
|
13351
13439
|
const scrollTarget = getTarget2(target);
|
|
13352
13440
|
if (!scrollTarget)
|
|
13353
13441
|
return;
|
|
@@ -13384,7 +13472,7 @@ var FloatButton = Object.assign(InternalFloatButton, {
|
|
|
13384
13472
|
BackTop: FloatButtonBackTop
|
|
13385
13473
|
});
|
|
13386
13474
|
// src/components/fab/Fab.tsx
|
|
13387
|
-
import { createContext as createContext7, forwardRef as forwardRef56, useContext as useContext7, useId as
|
|
13475
|
+
import { createContext as createContext7, forwardRef as forwardRef56, useContext as useContext7, useId as useId13 } from "react";
|
|
13388
13476
|
|
|
13389
13477
|
// src/classes/fab.ts
|
|
13390
13478
|
var fabClass = "fab";
|
|
@@ -13456,7 +13544,7 @@ var FabRoot = forwardRef56(({
|
|
|
13456
13544
|
children,
|
|
13457
13545
|
...props
|
|
13458
13546
|
}, ref) => {
|
|
13459
|
-
const actionsId = `fab-actions-${
|
|
13547
|
+
const actionsId = `fab-actions-${useId13().replace(/:/g, "")}`;
|
|
13460
13548
|
const hasActions = actions != null;
|
|
13461
13549
|
const resolvedSpeedDial = speedDial || hasActions;
|
|
13462
13550
|
return /* @__PURE__ */ jsx69(FabContext.Provider, {
|
|
@@ -13510,14 +13598,14 @@ import React64, {
|
|
|
13510
13598
|
createContext as createContext8,
|
|
13511
13599
|
forwardRef as forwardRef57,
|
|
13512
13600
|
isValidElement as isValidElement4,
|
|
13513
|
-
useCallback as
|
|
13601
|
+
useCallback as useCallback9,
|
|
13514
13602
|
useContext as useContext8,
|
|
13515
|
-
useEffect as
|
|
13603
|
+
useEffect as useEffect27,
|
|
13516
13604
|
useImperativeHandle as useImperativeHandle8,
|
|
13517
|
-
useId as
|
|
13605
|
+
useId as useId14,
|
|
13518
13606
|
useLayoutEffect as useLayoutEffect4,
|
|
13519
13607
|
useMemo as useMemo27,
|
|
13520
|
-
useRef as
|
|
13608
|
+
useRef as useRef21,
|
|
13521
13609
|
useState as useState44,
|
|
13522
13610
|
useSyncExternalStore as useSyncExternalStore2
|
|
13523
13611
|
} from "react";
|
|
@@ -13686,7 +13774,7 @@ var FormBase = forwardRef57(({
|
|
|
13686
13774
|
...props
|
|
13687
13775
|
}, ref) => {
|
|
13688
13776
|
const formInstance = useInternalForm(form, initialValues);
|
|
13689
|
-
const initialValuesRef =
|
|
13777
|
+
const initialValuesRef = useRef21(initialValues);
|
|
13690
13778
|
const [errors, setErrors] = useState44({});
|
|
13691
13779
|
const [, rerender] = useState44(0);
|
|
13692
13780
|
const providerForms = useContext8(ProviderContext);
|
|
@@ -13703,21 +13791,21 @@ var FormBase = forwardRef57(({
|
|
|
13703
13791
|
const internal = formInstance;
|
|
13704
13792
|
return internal.__subscribe?.(() => rerender((value) => value + 1));
|
|
13705
13793
|
}, [formInstance]);
|
|
13706
|
-
|
|
13794
|
+
useEffect27(() => {
|
|
13707
13795
|
formInstance.__setSubmit?.(() => {
|
|
13708
13796
|
submit();
|
|
13709
13797
|
});
|
|
13710
13798
|
});
|
|
13711
|
-
const setFieldError =
|
|
13799
|
+
const setFieldError = useCallback9((fieldName, fieldErrors) => {
|
|
13712
13800
|
setErrors((current) => ({
|
|
13713
13801
|
...current,
|
|
13714
13802
|
[nameKey(fieldName)]: fieldErrors
|
|
13715
13803
|
}));
|
|
13716
13804
|
}, []);
|
|
13717
|
-
const getFieldError =
|
|
13805
|
+
const getFieldError = useCallback9((fieldName) => {
|
|
13718
13806
|
return errors[nameKey(fieldName)] ?? [];
|
|
13719
13807
|
}, [errors]);
|
|
13720
|
-
const registerField =
|
|
13808
|
+
const registerField = useCallback9((fieldName, rules = []) => {
|
|
13721
13809
|
const store = formInstance.__getRules?.();
|
|
13722
13810
|
store?.set(nameKey(fieldName), { name: fieldName, rules });
|
|
13723
13811
|
return () => {
|
|
@@ -13800,14 +13888,14 @@ var FormItem = forwardRef57(({
|
|
|
13800
13888
|
...props
|
|
13801
13889
|
}, ref) => {
|
|
13802
13890
|
const context = useContext8(FormContext);
|
|
13803
|
-
const generatedId =
|
|
13891
|
+
const generatedId = useId14();
|
|
13804
13892
|
useFormVersion(context?.form);
|
|
13805
13893
|
const fieldErrors = name && context ? context.getFieldError(name) : [];
|
|
13806
13894
|
const ruleRequired = required ?? rules.some((rule) => rule.required);
|
|
13807
13895
|
const child = isValidElement4(children) && children.type !== React64.Fragment ? children : null;
|
|
13808
13896
|
const childProps = child?.props;
|
|
13809
13897
|
const controlId = label && !noStyle && htmlFor === undefined && child ? childProps?.id ?? generatedId : undefined;
|
|
13810
|
-
|
|
13898
|
+
useEffect27(() => {
|
|
13811
13899
|
if (!name || !context) {
|
|
13812
13900
|
return;
|
|
13813
13901
|
}
|
|
@@ -14032,7 +14120,7 @@ var Grid = {
|
|
|
14032
14120
|
useWatch: useWatch2
|
|
14033
14121
|
};
|
|
14034
14122
|
// src/components/image/Image.tsx
|
|
14035
|
-
import { forwardRef as forwardRef58, useEffect as
|
|
14123
|
+
import { forwardRef as forwardRef58, useEffect as useEffect28, useState as useState45 } from "react";
|
|
14036
14124
|
|
|
14037
14125
|
// src/classes/image.ts
|
|
14038
14126
|
var imageBaseClass = "image";
|
|
@@ -14096,7 +14184,7 @@ var ImageBase = forwardRef58(({
|
|
|
14096
14184
|
const isPreviewEnabled = previewEnabled(preview);
|
|
14097
14185
|
const previewVisible = config.visible ?? internalPreviewVisible;
|
|
14098
14186
|
const hasImage = Boolean(currentSrc);
|
|
14099
|
-
|
|
14187
|
+
useEffect28(() => {
|
|
14100
14188
|
setCurrentSrc(src);
|
|
14101
14189
|
setLoading(Boolean(src));
|
|
14102
14190
|
setFailed(false);
|
|
@@ -14468,7 +14556,7 @@ var List = Object.assign(ListRootWithRef, {
|
|
|
14468
14556
|
});
|
|
14469
14557
|
List.displayName = "List";
|
|
14470
14558
|
// src/components/mentions/Mentions.tsx
|
|
14471
|
-
import React68, { forwardRef as forwardRef61, useId as
|
|
14559
|
+
import React68, { forwardRef as forwardRef61, useId as useId15, useMemo as useMemo30, useRef as useRef22, useState as useState47 } from "react";
|
|
14472
14560
|
|
|
14473
14561
|
// src/classes/mentions.ts
|
|
14474
14562
|
var mentionsBaseClass = "mentions";
|
|
@@ -14589,8 +14677,8 @@ var MentionsRoot = forwardRef61(({
|
|
|
14589
14677
|
value,
|
|
14590
14678
|
...props
|
|
14591
14679
|
}, ref) => {
|
|
14592
|
-
const listboxId =
|
|
14593
|
-
const textareaRef =
|
|
14680
|
+
const listboxId = useId15();
|
|
14681
|
+
const textareaRef = useRef22(null);
|
|
14594
14682
|
const sourceOptions = useMemo30(() => options ?? optionsFromChildren3(children), [children, options]);
|
|
14595
14683
|
const prefixes = useMemo30(() => normalizePrefixes(prefix), [prefix]);
|
|
14596
14684
|
const [internalValue, setInternalValue] = useState47(defaultValue);
|
|
@@ -14757,7 +14845,7 @@ import {
|
|
|
14757
14845
|
createContext as createContext9,
|
|
14758
14846
|
forwardRef as forwardRef62,
|
|
14759
14847
|
useContext as useContext9,
|
|
14760
|
-
useId as
|
|
14848
|
+
useId as useId16
|
|
14761
14849
|
} from "react";
|
|
14762
14850
|
|
|
14763
14851
|
// src/classes/megamenu.ts
|
|
@@ -14787,7 +14875,7 @@ var Bar = forwardRef62(({ className, ...props }, ref) => /* @__PURE__ */ jsx75("
|
|
|
14787
14875
|
}));
|
|
14788
14876
|
Bar.displayName = "Megamenu.Bar";
|
|
14789
14877
|
var Item = forwardRef62(({ style, children, ...props }, ref) => {
|
|
14790
|
-
const key =
|
|
14878
|
+
const key = useId16().replace(/:/g, "");
|
|
14791
14879
|
const panelId = `megamenu-panel-${key}`;
|
|
14792
14880
|
const anchorStyle = {
|
|
14793
14881
|
...style,
|
|
@@ -14873,7 +14961,7 @@ var MegamenuRoot = forwardRef62(({
|
|
|
14873
14961
|
children,
|
|
14874
14962
|
...props
|
|
14875
14963
|
}, ref) => {
|
|
14876
|
-
const key =
|
|
14964
|
+
const key = useId16().replace(/[^a-zA-Z0-9_-]/g, "");
|
|
14877
14965
|
const panelId = `dm-megamenu-${key}`;
|
|
14878
14966
|
const headingId = `${panelId}-heading`;
|
|
14879
14967
|
const anchorStyle = {
|
|
@@ -15023,9 +15111,9 @@ import {
|
|
|
15023
15111
|
cloneElement as cloneElement2,
|
|
15024
15112
|
forwardRef as forwardRef64,
|
|
15025
15113
|
isValidElement as isValidElement5,
|
|
15026
|
-
useId as
|
|
15114
|
+
useId as useId17,
|
|
15027
15115
|
useLayoutEffect as useLayoutEffect5,
|
|
15028
|
-
useRef as
|
|
15116
|
+
useRef as useRef23,
|
|
15029
15117
|
useState as useState48
|
|
15030
15118
|
} from "react";
|
|
15031
15119
|
|
|
@@ -15101,10 +15189,10 @@ var Popover = forwardRef64(({
|
|
|
15101
15189
|
}, ref) => {
|
|
15102
15190
|
const isControlled = open !== undefined;
|
|
15103
15191
|
const [internalOpen, setInternalOpen] = useState48(Boolean(defaultOpen));
|
|
15104
|
-
const generatedId =
|
|
15192
|
+
const generatedId = useId17();
|
|
15105
15193
|
const tooltipId = id ? `${id}-popover` : generatedId;
|
|
15106
15194
|
const anchorName = `--dm-popover-${generatedId.replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
15107
|
-
const popoverRef =
|
|
15195
|
+
const popoverRef = useRef23(null);
|
|
15108
15196
|
const visible = isControlled ? open : internalOpen;
|
|
15109
15197
|
useLayoutEffect5(() => {
|
|
15110
15198
|
const popover = popoverRef.current;
|
|
@@ -15226,9 +15314,9 @@ Popover.displayName = "Popover";
|
|
|
15226
15314
|
// src/components/popconfirm/Popconfirm.tsx
|
|
15227
15315
|
import React71, {
|
|
15228
15316
|
forwardRef as forwardRef65,
|
|
15229
|
-
useId as
|
|
15317
|
+
useId as useId18,
|
|
15230
15318
|
useLayoutEffect as useLayoutEffect6,
|
|
15231
|
-
useRef as
|
|
15319
|
+
useRef as useRef24,
|
|
15232
15320
|
useState as useState49
|
|
15233
15321
|
} from "react";
|
|
15234
15322
|
|
|
@@ -15310,13 +15398,13 @@ var Popconfirm = forwardRef65(({
|
|
|
15310
15398
|
}, ref) => {
|
|
15311
15399
|
const [internalOpen, setInternalOpen] = useState49(Boolean(defaultOpen));
|
|
15312
15400
|
const [confirmLoading, setConfirmLoading] = useState49(false);
|
|
15313
|
-
const generatedPopupId =
|
|
15401
|
+
const generatedPopupId = useId18();
|
|
15314
15402
|
const isControlled = open !== undefined;
|
|
15315
15403
|
const visible = isControlled ? open : internalOpen;
|
|
15316
15404
|
const popupId = id ? `${id}-popconfirm` : generatedPopupId;
|
|
15317
15405
|
const anchorName = `--dm-popconfirm-${generatedPopupId.replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
15318
|
-
const popupRef =
|
|
15319
|
-
const desiredOpen =
|
|
15406
|
+
const popupRef = useRef24(null);
|
|
15407
|
+
const desiredOpen = useRef24(visible);
|
|
15320
15408
|
desiredOpen.current = visible;
|
|
15321
15409
|
const shouldRenderPopup = !destroyTooltipOnHide || visible;
|
|
15322
15410
|
useLayoutEffect6(() => {
|
|
@@ -16612,9 +16700,9 @@ var Skeleton = Object.assign(SkeletonRoot, {
|
|
|
16612
16700
|
// src/components/slider/Slider.tsx
|
|
16613
16701
|
import React80, {
|
|
16614
16702
|
forwardRef as forwardRef74,
|
|
16615
|
-
useEffect as
|
|
16703
|
+
useEffect as useEffect29,
|
|
16616
16704
|
useMemo as useMemo31,
|
|
16617
|
-
useRef as
|
|
16705
|
+
useRef as useRef25,
|
|
16618
16706
|
useState as useState52
|
|
16619
16707
|
} from "react";
|
|
16620
16708
|
|
|
@@ -16854,8 +16942,8 @@ var Slider = forwardRef74(({
|
|
|
16854
16942
|
step,
|
|
16855
16943
|
range: isRange
|
|
16856
16944
|
});
|
|
16857
|
-
const lastCommittedValue =
|
|
16858
|
-
|
|
16945
|
+
const lastCommittedValue = useRef25(currentValue);
|
|
16946
|
+
useEffect29(() => {
|
|
16859
16947
|
lastCommittedValue.current = currentValue;
|
|
16860
16948
|
}, [currentValue]);
|
|
16861
16949
|
function commitValue(nextValue) {
|
|
@@ -17126,7 +17214,7 @@ Compact.displayName = "Space.Compact";
|
|
|
17126
17214
|
var Space = SpaceBase;
|
|
17127
17215
|
Space.Compact = Compact;
|
|
17128
17216
|
// src/components/statistic/Statistic.tsx
|
|
17129
|
-
import { useEffect as
|
|
17217
|
+
import { useEffect as useEffect30, useMemo as useMemo32, useRef as useRef26, useState as useState53 } from "react";
|
|
17130
17218
|
|
|
17131
17219
|
// src/classes/statistic.ts
|
|
17132
17220
|
var statisticBaseClass = "statistic";
|
|
@@ -17222,8 +17310,8 @@ function Countdown({
|
|
|
17222
17310
|
}) {
|
|
17223
17311
|
const target = useMemo32(() => toTimestamp(value), [value]);
|
|
17224
17312
|
const [remaining, setRemaining] = useState53(() => Math.max(0, target - Date.now()));
|
|
17225
|
-
const finishedRef =
|
|
17226
|
-
|
|
17313
|
+
const finishedRef = useRef26(false);
|
|
17314
|
+
useEffect30(() => {
|
|
17227
17315
|
finishedRef.current = false;
|
|
17228
17316
|
const tick = () => {
|
|
17229
17317
|
const nextRemaining = Math.max(0, target - Date.now());
|
|
@@ -18292,8 +18380,8 @@ Timeline.displayName = "Timeline";
|
|
|
18292
18380
|
// src/components/tour/Tour.tsx
|
|
18293
18381
|
import {
|
|
18294
18382
|
forwardRef as forwardRef82,
|
|
18295
|
-
useEffect as
|
|
18296
|
-
useId as
|
|
18383
|
+
useEffect as useEffect31,
|
|
18384
|
+
useId as useId19,
|
|
18297
18385
|
useState as useState56
|
|
18298
18386
|
} from "react";
|
|
18299
18387
|
|
|
@@ -18477,7 +18565,7 @@ var Tour = forwardRef82(({
|
|
|
18477
18565
|
id,
|
|
18478
18566
|
...props
|
|
18479
18567
|
}, ref) => {
|
|
18480
|
-
const generatedId =
|
|
18568
|
+
const generatedId = useId19();
|
|
18481
18569
|
const rootId = id ?? generatedId;
|
|
18482
18570
|
const [internalOpen, setInternalOpen] = useState56(defaultOpen);
|
|
18483
18571
|
const [internalCurrent, setInternalCurrent] = useState56(defaultCurrent);
|
|
@@ -18491,7 +18579,7 @@ var Tour = forwardRef82(({
|
|
|
18491
18579
|
const maskConfig = getMaskConfig(mergedMask);
|
|
18492
18580
|
const hasMask = mergedMask !== false;
|
|
18493
18581
|
const [targetRect, setTargetRect] = useState56(fallbackRect);
|
|
18494
|
-
|
|
18582
|
+
useEffect31(() => {
|
|
18495
18583
|
if (!visible)
|
|
18496
18584
|
return;
|
|
18497
18585
|
const target = resolveTarget(step?.target);
|
|
@@ -19560,7 +19648,7 @@ TreeSelect.SHOW_ALL = SHOW_ALL;
|
|
|
19560
19648
|
TreeSelect.SHOW_PARENT = SHOW_PARENT;
|
|
19561
19649
|
TreeSelect.SHOW_CHILD = SHOW_CHILD;
|
|
19562
19650
|
// src/components/typography/Typography.tsx
|
|
19563
|
-
import React90, { forwardRef as forwardRef85, useEffect as
|
|
19651
|
+
import React90, { forwardRef as forwardRef85, useEffect as useEffect32, useMemo as useMemo35, useRef as useRef27, useState as useState59 } from "react";
|
|
19564
19652
|
|
|
19565
19653
|
// src/classes/typography.ts
|
|
19566
19654
|
var typographyBaseClass = "typography markdown-body";
|
|
@@ -19745,12 +19833,12 @@ function EditableContent({
|
|
|
19745
19833
|
sourceText,
|
|
19746
19834
|
children
|
|
19747
19835
|
}) {
|
|
19748
|
-
const textareaRef =
|
|
19836
|
+
const textareaRef = useRef27(null);
|
|
19749
19837
|
const isControlled = editable?.editing !== undefined;
|
|
19750
19838
|
const [internalEditing, setInternalEditing] = useState59(false);
|
|
19751
19839
|
const [draft, setDraft] = useState59(editable?.text ?? sourceText);
|
|
19752
19840
|
const editing = editable ? editable.editing ?? internalEditing : false;
|
|
19753
|
-
|
|
19841
|
+
useEffect32(() => {
|
|
19754
19842
|
if (editing) {
|
|
19755
19843
|
textareaRef.current?.focus();
|
|
19756
19844
|
}
|
|
@@ -20350,7 +20438,7 @@ var Markdown = forwardRef86(function Markdown({
|
|
|
20350
20438
|
});
|
|
20351
20439
|
});
|
|
20352
20440
|
// src/components/upload/Upload.tsx
|
|
20353
|
-
import React92, { forwardRef as forwardRef87, useLayoutEffect as useLayoutEffect7, useRef as
|
|
20441
|
+
import React92, { forwardRef as forwardRef87, useLayoutEffect as useLayoutEffect7, useRef as useRef28, useState as useState60 } from "react";
|
|
20354
20442
|
|
|
20355
20443
|
// src/classes/upload.ts
|
|
20356
20444
|
var uploadBaseClass = "file-upload";
|
|
@@ -20450,12 +20538,12 @@ function UploadRoot({
|
|
|
20450
20538
|
dragger,
|
|
20451
20539
|
...props
|
|
20452
20540
|
}, ref) {
|
|
20453
|
-
const inputRef =
|
|
20541
|
+
const inputRef = useRef28(null);
|
|
20454
20542
|
const [dragover, setDragover] = useState60(false);
|
|
20455
20543
|
const [internalFileList, setInternalFileList] = useState60(() => defaultFileList.map(ensureUid));
|
|
20456
20544
|
const controlled = fileList !== undefined;
|
|
20457
20545
|
const mergedFileList = (controlled ? fileList : internalFileList).map(ensureUid);
|
|
20458
|
-
const currentFileListRef =
|
|
20546
|
+
const currentFileListRef = useRef28(mergedFileList);
|
|
20459
20547
|
useLayoutEffect7(() => {
|
|
20460
20548
|
currentFileListRef.current = mergedFileList;
|
|
20461
20549
|
}, [mergedFileList]);
|