@measured/puck 0.18.0-canary.01d9695 → 0.18.0-canary.01f089b
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/README.md +3 -3
- package/dist/index.css +45 -48
- package/dist/index.d.mts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +221 -143
- package/dist/index.mjs +212 -134
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
@@ -205,7 +205,7 @@ init_react_import();
|
|
205
205
|
|
206
206
|
// css-module:/home/runner/work/puck/puck/packages/core/components/AutoField/styles.module.css#css-module
|
207
207
|
init_react_import();
|
208
|
-
var styles_module_default2 = { "InputWrapper": "
|
208
|
+
var styles_module_default2 = { "InputWrapper": "_InputWrapper_1h1p1_1", "Input-label": "_Input-label_1h1p1_5", "Input-labelIcon": "_Input-labelIcon_1h1p1_14", "Input-disabledIcon": "_Input-disabledIcon_1h1p1_21", "Input-input": "_Input-input_1h1p1_26", "Input": "_Input_1h1p1_1", "Input--readOnly": "_Input--readOnly_1h1p1_70", "Input-radioGroupItems": "_Input-radioGroupItems_1h1p1_81", "Input-radio": "_Input-radio_1h1p1_81", "Input-radioInner": "_Input-radioInner_1h1p1_98", "Input-radioInput": "_Input-radioInput_1h1p1_143" };
|
209
209
|
|
210
210
|
// components/AutoField/index.tsx
|
211
211
|
import {
|
@@ -1504,12 +1504,13 @@ var DefaultField = ({
|
|
1504
1504
|
field,
|
1505
1505
|
onChange,
|
1506
1506
|
readOnly,
|
1507
|
-
value,
|
1507
|
+
value: _value,
|
1508
1508
|
name,
|
1509
1509
|
label,
|
1510
1510
|
Label: Label2,
|
1511
1511
|
id
|
1512
1512
|
}) => {
|
1513
|
+
const value = _value;
|
1513
1514
|
return /* @__PURE__ */ jsx9(
|
1514
1515
|
Label2,
|
1515
1516
|
{
|
@@ -1527,7 +1528,7 @@ var DefaultField = ({
|
|
1527
1528
|
type: field.type,
|
1528
1529
|
title: label || name,
|
1529
1530
|
name,
|
1530
|
-
value:
|
1531
|
+
value: (value == null ? void 0 : value.toString) ? value.toString() : "",
|
1531
1532
|
onChange: (e) => {
|
1532
1533
|
if (field.type === "number") {
|
1533
1534
|
const numberValue = Number(e.currentTarget.value);
|
@@ -2436,7 +2437,7 @@ import {
|
|
2436
2437
|
useContext as useContext7,
|
2437
2438
|
useEffect as useEffect15,
|
2438
2439
|
useId,
|
2439
|
-
useRef as
|
2440
|
+
useRef as useRef3,
|
2440
2441
|
useState as useState17
|
2441
2442
|
} from "react";
|
2442
2443
|
import { AutoScroller, defaultPreset } from "@dnd-kit/dom";
|
@@ -2449,7 +2450,7 @@ import {
|
|
2449
2450
|
useContext as useContext6,
|
2450
2451
|
useEffect as useEffect14,
|
2451
2452
|
useMemo as useMemo8,
|
2452
|
-
useRef as
|
2453
|
+
useRef as useRef2
|
2453
2454
|
} from "react";
|
2454
2455
|
|
2455
2456
|
// components/DraggableComponent/index.tsx
|
@@ -2459,7 +2460,7 @@ import {
|
|
2459
2460
|
useContext as useContext5,
|
2460
2461
|
useEffect as useEffect10,
|
2461
2462
|
useMemo as useMemo7,
|
2462
|
-
useRef
|
2463
|
+
useRef,
|
2463
2464
|
useState as useState13
|
2464
2465
|
} from "react";
|
2465
2466
|
|
@@ -3047,7 +3048,7 @@ var DraggableComponent = ({
|
|
3047
3048
|
}
|
3048
3049
|
});
|
3049
3050
|
const thisIsDragging = status === "dragging";
|
3050
|
-
const ref =
|
3051
|
+
const ref = useRef(null);
|
3051
3052
|
const refSetter = useCallback7(
|
3052
3053
|
(el) => {
|
3053
3054
|
sortableRef(el);
|
@@ -3098,13 +3099,19 @@ var DraggableComponent = ({
|
|
3098
3099
|
}
|
3099
3100
|
}, [ref.current]);
|
3100
3101
|
useEffect10(() => {
|
3101
|
-
|
3102
|
-
|
3102
|
+
ctx == null ? void 0 : ctx.registerPath(
|
3103
|
+
id,
|
3104
|
+
{
|
3103
3105
|
index,
|
3104
3106
|
zone: zoneCompound
|
3105
|
-
}
|
3106
|
-
|
3107
|
-
|
3107
|
+
},
|
3108
|
+
componentType
|
3109
|
+
);
|
3110
|
+
return () => {
|
3111
|
+
var _a;
|
3112
|
+
(_a = ctx == null ? void 0 : ctx.unregisterPath) == null ? void 0 : _a.call(ctx, id);
|
3113
|
+
};
|
3114
|
+
}, [id, zoneCompound, index, componentType]);
|
3108
3115
|
const CustomActionBar = useMemo7(
|
3109
3116
|
() => overrides.actionBar || DefaultActionBar,
|
3110
3117
|
[overrides.actionBar]
|
@@ -3424,9 +3431,20 @@ var useContentWithPreview = (content, zoneCompound) => {
|
|
3424
3431
|
};
|
3425
3432
|
}
|
3426
3433
|
);
|
3434
|
+
const {
|
3435
|
+
state: {
|
3436
|
+
ui: { isDragging }
|
3437
|
+
}
|
3438
|
+
} = useAppContext();
|
3427
3439
|
const [contentWithPreview, setContentWithPreview] = useState15(content);
|
3440
|
+
const [localPreview, setLocalPreview] = useState15(
|
3441
|
+
preview
|
3442
|
+
);
|
3428
3443
|
const updateContent = useRenderedCallback(
|
3429
|
-
(content2, preview2) => {
|
3444
|
+
(content2, preview2, isDragging2) => {
|
3445
|
+
if (isDragging2 && !previewExists) {
|
3446
|
+
return;
|
3447
|
+
}
|
3430
3448
|
if (preview2) {
|
3431
3449
|
if (preview2.type === "insert") {
|
3432
3450
|
setContentWithPreview(
|
@@ -3456,13 +3474,14 @@ var useContentWithPreview = (content, zoneCompound) => {
|
|
3456
3474
|
previewExists ? content2.filter((item) => item.props.id !== draggedItemId) : content2
|
3457
3475
|
);
|
3458
3476
|
}
|
3477
|
+
setLocalPreview(preview2);
|
3459
3478
|
},
|
3460
3479
|
[draggedItemId, previewExists]
|
3461
3480
|
);
|
3462
3481
|
useEffect12(() => {
|
3463
|
-
updateContent(content, preview);
|
3464
|
-
}, [content, preview]);
|
3465
|
-
return contentWithPreview;
|
3482
|
+
updateContent(content, preview, isDragging);
|
3483
|
+
}, [content, preview, isDragging]);
|
3484
|
+
return [contentWithPreview, localPreview];
|
3466
3485
|
};
|
3467
3486
|
|
3468
3487
|
// components/DropZone/lib/use-drag-axis.ts
|
@@ -3542,8 +3561,7 @@ var DropZoneEdit = forwardRef3(
|
|
3542
3561
|
isDeepestZone,
|
3543
3562
|
inNextDeepestArea,
|
3544
3563
|
draggedComponentType,
|
3545
|
-
userIsDragging
|
3546
|
-
preview
|
3564
|
+
userIsDragging
|
3547
3565
|
} = useContextStore(ZoneStoreContext, (s) => {
|
3548
3566
|
var _a, _b, _c;
|
3549
3567
|
return {
|
@@ -3551,8 +3569,7 @@ var DropZoneEdit = forwardRef3(
|
|
3551
3569
|
inNextDeepestArea: s.nextAreaDepthIndex[areaId || ""],
|
3552
3570
|
draggedItemId: (_b = s.draggedItem) == null ? void 0 : _b.id,
|
3553
3571
|
draggedComponentType: (_c = s.draggedItem) == null ? void 0 : _c.data.componentType,
|
3554
|
-
userIsDragging: !!s.draggedItem
|
3555
|
-
preview: s.previewIndex[zoneCompound]
|
3572
|
+
userIsDragging: !!s.draggedItem
|
3556
3573
|
};
|
3557
3574
|
});
|
3558
3575
|
const { itemSelector } = appContext2.state.ui;
|
@@ -3577,7 +3594,7 @@ var DropZoneEdit = forwardRef3(
|
|
3577
3594
|
}
|
3578
3595
|
return data.content || [];
|
3579
3596
|
}, [data, zoneCompound]);
|
3580
|
-
const ref =
|
3597
|
+
const ref = useRef2(null);
|
3581
3598
|
const acceptsTarget = useCallback10(
|
3582
3599
|
(componentType) => {
|
3583
3600
|
if (!componentType) {
|
@@ -3618,7 +3635,10 @@ var DropZoneEdit = forwardRef3(
|
|
3618
3635
|
if (isEnabled) {
|
3619
3636
|
isEnabled = acceptsTarget(draggedComponentType);
|
3620
3637
|
}
|
3621
|
-
const contentWithPreview = useContentWithPreview(
|
3638
|
+
const [contentWithPreview, preview] = useContentWithPreview(
|
3639
|
+
content,
|
3640
|
+
zoneCompound
|
3641
|
+
);
|
3622
3642
|
const isDropEnabled = isEnabled && (preview ? contentWithPreview.length === 1 : contentWithPreview.length === 0);
|
3623
3643
|
const droppableConfig = {
|
3624
3644
|
id: zoneCompound,
|
@@ -3660,10 +3680,9 @@ var DropZoneEdit = forwardRef3(
|
|
3660
3680
|
},
|
3661
3681
|
"data-testid": `dropzone:${zoneCompound}`,
|
3662
3682
|
"data-puck-dropzone": zoneCompound,
|
3663
|
-
"data-puck-dnd": zoneCompound,
|
3664
3683
|
style: __spreadProps(__spreadValues({}, style), {
|
3665
3684
|
"--min-empty-height": `${minEmptyHeight}px`,
|
3666
|
-
backgroundColor: RENDER_DEBUG ? getRandomColor() : void 0
|
3685
|
+
backgroundColor: RENDER_DEBUG ? getRandomColor() : style == null ? void 0 : style.backgroundColor
|
3667
3686
|
}),
|
3668
3687
|
children: contentWithPreview.map((item, i) => {
|
3669
3688
|
var _a, _b, _c, _d, _e, _f, _g;
|
@@ -3942,6 +3961,13 @@ var getPointerCollisions = (position, manager) => {
|
|
3942
3961
|
if (elements) {
|
3943
3962
|
for (let i = 0; i < elements.length; i++) {
|
3944
3963
|
const element = elements[i];
|
3964
|
+
const dropzoneId = element.getAttribute("data-puck-dropzone");
|
3965
|
+
if (dropzoneId) {
|
3966
|
+
const droppable = manager.registry.droppables.get(dropzoneId);
|
3967
|
+
if (droppable) {
|
3968
|
+
candidates.push(droppable);
|
3969
|
+
}
|
3970
|
+
}
|
3945
3971
|
const id = element.getAttribute("data-puck-dnd");
|
3946
3972
|
if (id) {
|
3947
3973
|
const droppable = manager.registry.droppables.get(id);
|
@@ -4350,6 +4376,11 @@ var reduceUi = (ui, action) => {
|
|
4350
4376
|
itemSelector: { index: action.sourceIndex + 1, zone: action.sourceZone }
|
4351
4377
|
});
|
4352
4378
|
}
|
4379
|
+
if (action.type === "remove") {
|
4380
|
+
return __spreadProps(__spreadValues({}, ui), {
|
4381
|
+
itemSelector: null
|
4382
|
+
});
|
4383
|
+
}
|
4353
4384
|
return ui;
|
4354
4385
|
};
|
4355
4386
|
|
@@ -4729,7 +4760,7 @@ function useDragListener(type, fn, deps = []) {
|
|
4729
4760
|
}
|
4730
4761
|
var AREA_CHANGE_DEBOUNCE_MS = 100;
|
4731
4762
|
var useTempDisableFallback = (timeout3) => {
|
4732
|
-
const lastFallbackDisable =
|
4763
|
+
const lastFallbackDisable = useRef3(null);
|
4733
4764
|
return useCallback11((manager) => {
|
4734
4765
|
collisionStore.setState({ fallbackEnabled: false });
|
4735
4766
|
const fallbackId = generateId();
|
@@ -4749,7 +4780,7 @@ var DragDropContextClient = ({
|
|
4749
4780
|
const { state, config, dispatch, resolveData } = useAppContext();
|
4750
4781
|
const id = useId();
|
4751
4782
|
const { data } = state;
|
4752
|
-
const debouncedParamsRef =
|
4783
|
+
const debouncedParamsRef = useRef3(null);
|
4753
4784
|
const tempDisableFallback = useTempDisableFallback(100);
|
4754
4785
|
const [zoneStore] = useState17(
|
4755
4786
|
() => createStore3(() => ({
|
@@ -4888,30 +4919,36 @@ var DragDropContextClient = ({
|
|
4888
4919
|
]);
|
4889
4920
|
const [dragListeners, setDragListeners] = useState17({});
|
4890
4921
|
const [pathData, setPathData] = useState17();
|
4891
|
-
const dragMode =
|
4922
|
+
const dragMode = useRef3(null);
|
4892
4923
|
const registerPath = useCallback11(
|
4893
|
-
(selector) => {
|
4894
|
-
const item = getItem(selector, data);
|
4895
|
-
if (!item) {
|
4896
|
-
return;
|
4897
|
-
}
|
4924
|
+
(id2, selector, label) => {
|
4898
4925
|
const [area] = getZoneId(selector.zone);
|
4899
4926
|
setPathData((latestPathData = {}) => {
|
4900
4927
|
const parentPathData = latestPathData[area] || { path: [] };
|
4901
4928
|
return __spreadProps(__spreadValues({}, latestPathData), {
|
4902
|
-
[
|
4929
|
+
[id2]: {
|
4903
4930
|
path: [
|
4904
4931
|
...parentPathData.path,
|
4905
4932
|
...selector.zone ? [selector.zone] : []
|
4906
4933
|
],
|
4907
|
-
label
|
4934
|
+
label
|
4908
4935
|
}
|
4909
4936
|
});
|
4910
4937
|
});
|
4911
4938
|
},
|
4912
4939
|
[data, setPathData]
|
4913
4940
|
);
|
4914
|
-
const
|
4941
|
+
const unregisterPath = useCallback11(
|
4942
|
+
(id2) => {
|
4943
|
+
setPathData((latestPathData = {}) => {
|
4944
|
+
const newPathData = __spreadValues({}, latestPathData);
|
4945
|
+
delete newPathData[id2];
|
4946
|
+
return newPathData;
|
4947
|
+
});
|
4948
|
+
},
|
4949
|
+
[data, setPathData]
|
4950
|
+
);
|
4951
|
+
const initialSelector = useRef3(void 0);
|
4915
4952
|
return /* @__PURE__ */ jsx23("div", { id, children: /* @__PURE__ */ jsx23(
|
4916
4953
|
dragListenerContext.Provider,
|
4917
4954
|
{
|
@@ -5107,6 +5144,7 @@ var DragDropContextClient = ({
|
|
5107
5144
|
areaId: "root",
|
5108
5145
|
depth: 0,
|
5109
5146
|
registerPath,
|
5147
|
+
unregisterPath,
|
5110
5148
|
pathData,
|
5111
5149
|
path: []
|
5112
5150
|
},
|
@@ -5256,9 +5294,9 @@ Drawer.Item = DrawerItem;
|
|
5256
5294
|
// components/Puck/index.tsx
|
5257
5295
|
init_react_import();
|
5258
5296
|
import {
|
5259
|
-
useCallback as
|
5260
|
-
useEffect as
|
5261
|
-
useMemo as
|
5297
|
+
useCallback as useCallback18,
|
5298
|
+
useEffect as useEffect24,
|
5299
|
+
useMemo as useMemo19,
|
5262
5300
|
useReducer,
|
5263
5301
|
useState as useState26
|
5264
5302
|
} from "react";
|
@@ -5454,36 +5492,61 @@ init_react_import();
|
|
5454
5492
|
|
5455
5493
|
// css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Fields/styles.module.css#css-module
|
5456
5494
|
init_react_import();
|
5457
|
-
var styles_module_default16 = { "PuckFields": "
|
5495
|
+
var styles_module_default16 = { "PuckFields": "_PuckFields_10bh7_1", "PuckFields--isLoading": "_PuckFields--isLoading_10bh7_6", "PuckFields-loadingOverlay": "_PuckFields-loadingOverlay_10bh7_10", "PuckFields-loadingOverlayInner": "_PuckFields-loadingOverlayInner_10bh7_25", "PuckFields-field": "_PuckFields-field_10bh7_32", "PuckFields--wrapFields": "_PuckFields--wrapFields_10bh7_36" };
|
5458
5496
|
|
5459
5497
|
// components/Puck/components/Fields/index.tsx
|
5460
|
-
import {
|
5498
|
+
import { useMemo as useMemo12 } from "react";
|
5499
|
+
|
5500
|
+
// lib/use-resolved-fields.ts
|
5501
|
+
init_react_import();
|
5502
|
+
import { useCallback as useCallback13, useEffect as useEffect17, useMemo as useMemo11, useRef as useRef5, useState as useState19 } from "react";
|
5461
5503
|
|
5462
5504
|
// lib/use-parent.ts
|
5463
5505
|
init_react_import();
|
5464
|
-
import { useContext as useContext9 } from "react";
|
5465
|
-
var
|
5506
|
+
import { useCallback as useCallback12, useContext as useContext9 } from "react";
|
5507
|
+
var getParent = (itemSelector, pathData, data) => {
|
5466
5508
|
var _a;
|
5467
|
-
|
5468
|
-
const
|
5469
|
-
const
|
5470
|
-
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, state.data);
|
5509
|
+
if (!itemSelector) return null;
|
5510
|
+
const item = getItem(itemSelector, data);
|
5511
|
+
const breadcrumbs = convertPathDataToBreadcrumbs(item, pathData, data);
|
5471
5512
|
const lastItem = breadcrumbs[breadcrumbs.length - 1];
|
5472
|
-
const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector,
|
5513
|
+
const parent = (lastItem == null ? void 0 : lastItem.selector) ? (_a = getItem(lastItem.selector, data)) != null ? _a : null : null;
|
5473
5514
|
return parent || null;
|
5474
5515
|
};
|
5516
|
+
var useGetParent = () => {
|
5517
|
+
const { state } = useAppContext();
|
5518
|
+
const { pathData } = useContext9(dropZoneContext) || {};
|
5519
|
+
return useCallback12(
|
5520
|
+
() => getParent(state.ui.itemSelector, pathData, state.data),
|
5521
|
+
[state.ui.itemSelector, pathData, state.data]
|
5522
|
+
);
|
5523
|
+
};
|
5524
|
+
var useParent = () => {
|
5525
|
+
return useGetParent()();
|
5526
|
+
};
|
5475
5527
|
|
5476
|
-
//
|
5477
|
-
|
5478
|
-
|
5528
|
+
// lib/use-on-value-change.ts
|
5529
|
+
init_react_import();
|
5530
|
+
import { useRef as useRef4, useEffect as useEffect16 } from "react";
|
5531
|
+
function useOnValueChange(value, onChange, compare = Object.is, deps = []) {
|
5532
|
+
const tracked = useRef4(value);
|
5533
|
+
useEffect16(() => {
|
5534
|
+
const oldValue = tracked.current;
|
5535
|
+
if (!compare(value, oldValue)) {
|
5536
|
+
tracked.current = value;
|
5537
|
+
onChange(value, oldValue);
|
5538
|
+
}
|
5539
|
+
}, [onChange, compare, value, ...deps]);
|
5540
|
+
}
|
5541
|
+
|
5542
|
+
// lib/selector-is.ts
|
5543
|
+
init_react_import();
|
5544
|
+
var selectorIs = (a, b) => (a == null ? void 0 : a.zone) === (b == null ? void 0 : b.zone) && (a == null ? void 0 : a.index) === (b == null ? void 0 : b.index);
|
5545
|
+
|
5546
|
+
// lib/use-resolved-fields.ts
|
5479
5547
|
var defaultPageFields = {
|
5480
5548
|
title: { type: "text" }
|
5481
5549
|
};
|
5482
|
-
var DefaultFields = ({
|
5483
|
-
children
|
5484
|
-
}) => {
|
5485
|
-
return /* @__PURE__ */ jsx27(Fragment8, { children });
|
5486
|
-
};
|
5487
5550
|
var useResolvedFields = () => {
|
5488
5551
|
var _a, _b;
|
5489
5552
|
const { selectedItem, state, config } = useAppContext();
|
@@ -5499,12 +5562,13 @@ var useResolvedFields = () => {
|
|
5499
5562
|
const [lastSelectedData, setLastSelectedData] = useState19({});
|
5500
5563
|
const [resolvedFields, setResolvedFields] = useState19(defaultFields);
|
5501
5564
|
const [fieldsLoading, setFieldsLoading] = useState19(false);
|
5565
|
+
const lastFields = useRef5(defaultFields);
|
5502
5566
|
const defaultResolveFields = (_componentData, _params) => defaultFields;
|
5503
5567
|
const componentData = selectedItem ? selectedItem : { props: rootProps, readOnly: data.root.readOnly };
|
5504
5568
|
const hasComponentResolver = selectedItem && (componentConfig == null ? void 0 : componentConfig.resolveFields);
|
5505
5569
|
const hasRootResolver = !selectedItem && ((_b = config.root) == null ? void 0 : _b.resolveFields);
|
5506
5570
|
const hasResolver = hasComponentResolver || hasRootResolver;
|
5507
|
-
const resolveFields =
|
5571
|
+
const resolveFields = useCallback13(
|
5508
5572
|
(..._0) => __async(void 0, [..._0], function* (fields = {}) {
|
5509
5573
|
var _a2;
|
5510
5574
|
const lastData = ((_a2 = lastSelectedData.props) == null ? void 0 : _a2.id) === componentData.props.id ? lastSelectedData : null;
|
@@ -5516,7 +5580,7 @@ var useResolvedFields = () => {
|
|
5516
5580
|
{
|
5517
5581
|
changed,
|
5518
5582
|
fields,
|
5519
|
-
lastFields:
|
5583
|
+
lastFields: lastFields.current,
|
5520
5584
|
lastData,
|
5521
5585
|
appState: state,
|
5522
5586
|
parent
|
@@ -5527,7 +5591,7 @@ var useResolvedFields = () => {
|
|
5527
5591
|
return yield config.root.resolveFields(componentData, {
|
5528
5592
|
changed,
|
5529
5593
|
fields,
|
5530
|
-
lastFields:
|
5594
|
+
lastFields: lastFields.current,
|
5531
5595
|
lastData,
|
5532
5596
|
appState: state,
|
5533
5597
|
parent
|
@@ -5536,40 +5600,56 @@ var useResolvedFields = () => {
|
|
5536
5600
|
return defaultResolveFields(componentData, {
|
5537
5601
|
changed,
|
5538
5602
|
fields,
|
5539
|
-
lastFields:
|
5603
|
+
lastFields: lastFields.current,
|
5540
5604
|
lastData
|
5541
5605
|
});
|
5542
5606
|
}),
|
5543
|
-
[data, config, componentData, selectedItem,
|
5607
|
+
[data, config, componentData, selectedItem, state, parent]
|
5544
5608
|
);
|
5545
|
-
const
|
5546
|
-
useEffect16(() => {
|
5547
|
-
setHasParent(!!parent);
|
5548
|
-
}, [parent]);
|
5549
|
-
useEffect16(() => {
|
5609
|
+
const triggerResolver = useCallback13(() => {
|
5550
5610
|
var _a2, _b2;
|
5551
|
-
if (!((_a2 = state.ui.itemSelector) == null ? void 0 : _a2.zone) || ((_b2 = state.ui.itemSelector) == null ? void 0 : _b2.zone) === "default-zone" ||
|
5611
|
+
if (!((_a2 = state.ui.itemSelector) == null ? void 0 : _a2.zone) || ((_b2 = state.ui.itemSelector) == null ? void 0 : _b2.zone) === "default-zone" || parent) {
|
5552
5612
|
if (hasResolver) {
|
5553
5613
|
setFieldsLoading(true);
|
5554
5614
|
resolveFields(defaultFields).then((fields) => {
|
5555
5615
|
setResolvedFields(fields || {});
|
5616
|
+
lastFields.current = fields;
|
5556
5617
|
setFieldsLoading(false);
|
5557
5618
|
});
|
5558
|
-
|
5559
|
-
setResolvedFields(defaultFields);
|
5619
|
+
return;
|
5560
5620
|
}
|
5561
5621
|
}
|
5562
|
-
|
5563
|
-
|
5564
|
-
|
5622
|
+
setResolvedFields(defaultFields);
|
5623
|
+
}, [defaultFields, state.ui.itemSelector, hasResolver, parent]);
|
5624
|
+
useOnValueChange(
|
5565
5625
|
state.ui.itemSelector,
|
5566
|
-
|
5567
|
-
|
5568
|
-
|
5569
|
-
|
5626
|
+
() => {
|
5627
|
+
lastFields.current = defaultFields;
|
5628
|
+
},
|
5629
|
+
selectorIs
|
5630
|
+
);
|
5631
|
+
useOnValueChange(
|
5632
|
+
{ data, parent, itemSelector: state.ui.itemSelector },
|
5633
|
+
() => {
|
5634
|
+
triggerResolver();
|
5635
|
+
},
|
5636
|
+
(a, b) => JSON.stringify(a) === JSON.stringify(b)
|
5637
|
+
);
|
5638
|
+
useEffect17(() => {
|
5639
|
+
triggerResolver();
|
5640
|
+
}, []);
|
5570
5641
|
return [resolvedFields, fieldsLoading];
|
5571
5642
|
};
|
5572
|
-
|
5643
|
+
|
5644
|
+
// components/Puck/components/Fields/index.tsx
|
5645
|
+
import { Fragment as Fragment8, jsx as jsx27, jsxs as jsxs14 } from "react/jsx-runtime";
|
5646
|
+
var getClassName21 = get_class_name_factory_default("PuckFields", styles_module_default16);
|
5647
|
+
var DefaultFields = ({
|
5648
|
+
children
|
5649
|
+
}) => {
|
5650
|
+
return /* @__PURE__ */ jsx27(Fragment8, { children });
|
5651
|
+
};
|
5652
|
+
var Fields = ({ wrapFields = true }) => {
|
5573
5653
|
var _a, _b;
|
5574
5654
|
const {
|
5575
5655
|
selectedItem,
|
@@ -5587,11 +5667,11 @@ var Fields = () => {
|
|
5587
5667
|
const componentResolving = selectedItem ? ((_a = componentState[selectedItem == null ? void 0 : selectedItem.props.id]) == null ? void 0 : _a.loadingCount) > 0 : ((_b = componentState["puck-root"]) == null ? void 0 : _b.loadingCount) > 0;
|
5588
5668
|
const isLoading = fieldsResolving || componentResolving;
|
5589
5669
|
const rootProps = data.root.props || data.root;
|
5590
|
-
const Wrapper =
|
5670
|
+
const Wrapper = useMemo12(() => overrides.fields || DefaultFields, [overrides]);
|
5591
5671
|
return /* @__PURE__ */ jsxs14(
|
5592
5672
|
"form",
|
5593
5673
|
{
|
5594
|
-
className: getClassName21(),
|
5674
|
+
className: getClassName21({ wrapFields }),
|
5595
5675
|
onSubmit: (e) => {
|
5596
5676
|
e.preventDefault();
|
5597
5677
|
},
|
@@ -5667,7 +5747,7 @@ var Fields = () => {
|
|
5667
5747
|
item: selectedItem
|
5668
5748
|
});
|
5669
5749
|
const id = `${selectedItem.props.id}_${field.type}_${fieldName}`;
|
5670
|
-
return /* @__PURE__ */ jsx27(
|
5750
|
+
return /* @__PURE__ */ jsx27("div", { className: getClassName21("field"), children: /* @__PURE__ */ jsx27(
|
5671
5751
|
AutoFieldPrivate,
|
5672
5752
|
{
|
5673
5753
|
field,
|
@@ -5676,16 +5756,15 @@ var Fields = () => {
|
|
5676
5756
|
readOnly: !edit || readOnly[fieldName],
|
5677
5757
|
value: selectedItem.props[fieldName],
|
5678
5758
|
onChange
|
5679
|
-
}
|
5680
|
-
|
5681
|
-
);
|
5759
|
+
}
|
5760
|
+
) }, id);
|
5682
5761
|
} else {
|
5683
5762
|
const readOnly = data.root.readOnly || {};
|
5684
5763
|
const { edit } = getPermissions({
|
5685
5764
|
root: true
|
5686
5765
|
});
|
5687
5766
|
const id = `root_${field.type}_${fieldName}`;
|
5688
|
-
return /* @__PURE__ */ jsx27(
|
5767
|
+
return /* @__PURE__ */ jsx27("div", { className: getClassName21("field"), children: /* @__PURE__ */ jsx27(
|
5689
5768
|
AutoFieldPrivate,
|
5690
5769
|
{
|
5691
5770
|
field,
|
@@ -5694,9 +5773,8 @@ var Fields = () => {
|
|
5694
5773
|
readOnly: !edit || readOnly[fieldName],
|
5695
5774
|
value: rootProps[fieldName],
|
5696
5775
|
onChange
|
5697
|
-
}
|
5698
|
-
|
5699
|
-
);
|
5776
|
+
}
|
5777
|
+
) }, id);
|
5700
5778
|
}
|
5701
5779
|
}) }),
|
5702
5780
|
isLoading && /* @__PURE__ */ jsx27("div", { className: getClassName21("loadingOverlay"), children: /* @__PURE__ */ jsx27("div", { className: getClassName21("loadingOverlayInner"), children: /* @__PURE__ */ jsx27(Loader, { size: 16 }) }) })
|
@@ -5710,7 +5788,7 @@ init_react_import();
|
|
5710
5788
|
|
5711
5789
|
// lib/use-component-list.tsx
|
5712
5790
|
init_react_import();
|
5713
|
-
import { useEffect as
|
5791
|
+
import { useEffect as useEffect18, useState as useState20 } from "react";
|
5714
5792
|
|
5715
5793
|
// components/ComponentList/index.tsx
|
5716
5794
|
init_react_import();
|
@@ -5778,7 +5856,7 @@ ComponentList.Item = ComponentListItem;
|
|
5778
5856
|
import { jsx as jsx29 } from "react/jsx-runtime";
|
5779
5857
|
var useComponentList = (config, ui) => {
|
5780
5858
|
const [componentList, setComponentList] = useState20();
|
5781
|
-
|
5859
|
+
useEffect18(() => {
|
5782
5860
|
var _a, _b, _c;
|
5783
5861
|
if (Object.keys(ui.componentList).length > 0) {
|
5784
5862
|
const matchedComponents = [];
|
@@ -5847,25 +5925,25 @@ var useComponentList = (config, ui) => {
|
|
5847
5925
|
};
|
5848
5926
|
|
5849
5927
|
// components/Puck/components/Components/index.tsx
|
5850
|
-
import { useMemo as
|
5928
|
+
import { useMemo as useMemo13 } from "react";
|
5851
5929
|
import { jsx as jsx30 } from "react/jsx-runtime";
|
5852
5930
|
var Components = () => {
|
5853
5931
|
const { config, state, overrides } = useAppContext();
|
5854
5932
|
const componentList = useComponentList(config, state.ui);
|
5855
|
-
const Wrapper =
|
5933
|
+
const Wrapper = useMemo13(() => overrides.components || "div", [overrides]);
|
5856
5934
|
return /* @__PURE__ */ jsx30(Wrapper, { children: componentList ? componentList : /* @__PURE__ */ jsx30(ComponentList, { id: "all" }) });
|
5857
5935
|
};
|
5858
5936
|
|
5859
5937
|
// components/Puck/components/Preview/index.tsx
|
5860
5938
|
init_react_import();
|
5861
|
-
import { useCallback as
|
5939
|
+
import { useCallback as useCallback14, useEffect as useEffect20, useRef as useRef7, useMemo as useMemo14 } from "react";
|
5862
5940
|
|
5863
5941
|
// components/AutoFrame/index.tsx
|
5864
5942
|
init_react_import();
|
5865
5943
|
import {
|
5866
5944
|
createContext as createContext5,
|
5867
5945
|
useContext as useContext10,
|
5868
|
-
useEffect as
|
5946
|
+
useEffect as useEffect19,
|
5869
5947
|
useState as useState21
|
5870
5948
|
} from "react";
|
5871
5949
|
import hash from "object-hash";
|
@@ -5913,7 +5991,7 @@ var CopyHostStyles = ({
|
|
5913
5991
|
onStylesLoaded = () => null
|
5914
5992
|
}) => {
|
5915
5993
|
const { document: doc, window: win } = useFrame();
|
5916
|
-
|
5994
|
+
useEffect19(() => {
|
5917
5995
|
if (!win || !doc) {
|
5918
5996
|
return () => {
|
5919
5997
|
};
|
@@ -6093,7 +6171,7 @@ function AutoFrame(_a) {
|
|
6093
6171
|
const [loaded, setLoaded] = useState21(false);
|
6094
6172
|
const [ctx, setCtx] = useState21({});
|
6095
6173
|
const [mountTarget, setMountTarget] = useState21();
|
6096
|
-
|
6174
|
+
useEffect19(() => {
|
6097
6175
|
var _a2;
|
6098
6176
|
if (frameRef.current) {
|
6099
6177
|
setCtx({
|
@@ -6187,7 +6265,7 @@ import { Fragment as Fragment10, jsx as jsx33 } from "react/jsx-runtime";
|
|
6187
6265
|
var getClassName23 = get_class_name_factory_default("PuckPreview", styles_module_default18);
|
6188
6266
|
var useBubbleIframeEvents = (ref) => {
|
6189
6267
|
const { status } = useAppContext();
|
6190
|
-
|
6268
|
+
useEffect20(() => {
|
6191
6269
|
var _a;
|
6192
6270
|
if (ref.current && status === "READY") {
|
6193
6271
|
const iframe = ref.current;
|
@@ -6226,7 +6304,7 @@ var useBubbleIframeEvents = (ref) => {
|
|
6226
6304
|
};
|
6227
6305
|
var Preview2 = ({ id = "puck-preview" }) => {
|
6228
6306
|
const { config, dispatch, state, setStatus, iframe, overrides } = useAppContext();
|
6229
|
-
const Page =
|
6307
|
+
const Page = useCallback14(
|
6230
6308
|
(pageProps) => {
|
6231
6309
|
var _a, _b;
|
6232
6310
|
return ((_a = config.root) == null ? void 0 : _a.render) ? (_b = config.root) == null ? void 0 : _b.render(__spreadValues({
|
@@ -6235,9 +6313,9 @@ var Preview2 = ({ id = "puck-preview" }) => {
|
|
6235
6313
|
},
|
6236
6314
|
[config.root]
|
6237
6315
|
);
|
6238
|
-
const Frame =
|
6316
|
+
const Frame = useMemo14(() => overrides.iframe, [overrides]);
|
6239
6317
|
const rootProps = state.data.root.props || state.data.root;
|
6240
|
-
const ref =
|
6318
|
+
const ref = useRef7(null);
|
6241
6319
|
useBubbleIframeEvents(ref);
|
6242
6320
|
const inner = state.ui.previewMode === "edit" ? /* @__PURE__ */ jsx33(
|
6243
6321
|
Page,
|
@@ -6487,13 +6565,13 @@ var LayerTree = ({
|
|
6487
6565
|
};
|
6488
6566
|
|
6489
6567
|
// components/Puck/components/Outline/index.tsx
|
6490
|
-
import { useCallback as
|
6568
|
+
import { useCallback as useCallback15, useMemo as useMemo15 } from "react";
|
6491
6569
|
import { Fragment as Fragment12, jsx as jsx35, jsxs as jsxs17 } from "react/jsx-runtime";
|
6492
6570
|
var Outline = () => {
|
6493
6571
|
const { dispatch, state, overrides, config } = useAppContext();
|
6494
6572
|
const { data, ui } = state;
|
6495
6573
|
const { itemSelector } = ui;
|
6496
|
-
const setItemSelector =
|
6574
|
+
const setItemSelector = useCallback15(
|
6497
6575
|
(newItemSelector) => {
|
6498
6576
|
dispatch({
|
6499
6577
|
type: "setUi",
|
@@ -6502,7 +6580,7 @@ var Outline = () => {
|
|
6502
6580
|
},
|
6503
6581
|
[]
|
6504
6582
|
);
|
6505
|
-
const Wrapper =
|
6583
|
+
const Wrapper = useMemo15(() => overrides.outline || "div", [overrides]);
|
6506
6584
|
return /* @__PURE__ */ jsx35(Wrapper, { children: /* @__PURE__ */ jsx35(dropZoneContext.Consumer, { children: (ctx) => /* @__PURE__ */ jsxs17(Fragment12, { children: [
|
6507
6585
|
(ctx == null ? void 0 : ctx.activeZones) && (ctx == null ? void 0 : ctx.activeZones[rootDroppableId]) && /* @__PURE__ */ jsx35(
|
6508
6586
|
LayerTree,
|
@@ -6789,16 +6867,16 @@ var getBox = function getBox2(el) {
|
|
6789
6867
|
|
6790
6868
|
// components/Puck/components/Canvas/index.tsx
|
6791
6869
|
import {
|
6792
|
-
useCallback as
|
6793
|
-
useEffect as
|
6794
|
-
useMemo as
|
6795
|
-
useRef as
|
6870
|
+
useCallback as useCallback16,
|
6871
|
+
useEffect as useEffect22,
|
6872
|
+
useMemo as useMemo17,
|
6873
|
+
useRef as useRef8,
|
6796
6874
|
useState as useState24
|
6797
6875
|
} from "react";
|
6798
6876
|
|
6799
6877
|
// components/ViewportControls/index.tsx
|
6800
6878
|
init_react_import();
|
6801
|
-
import { useEffect as
|
6879
|
+
import { useEffect as useEffect21, useMemo as useMemo16, useState as useState23 } from "react";
|
6802
6880
|
|
6803
6881
|
// css-module:/home/runner/work/puck/puck/packages/core/components/ViewportControls/styles.module.css#css-module
|
6804
6882
|
init_react_import();
|
@@ -6822,7 +6900,7 @@ var ViewportButton = ({
|
|
6822
6900
|
}) => {
|
6823
6901
|
const { state } = useAppContext();
|
6824
6902
|
const [isActive, setIsActive] = useState23(false);
|
6825
|
-
|
6903
|
+
useEffect21(() => {
|
6826
6904
|
setIsActive(width === state.ui.viewports.current.width);
|
6827
6905
|
}, [width, state.ui.viewports.current.width]);
|
6828
6906
|
return /* @__PURE__ */ jsx36("span", { className: getClassNameButton({ isActive }), children: /* @__PURE__ */ jsx36(
|
@@ -6858,7 +6936,7 @@ var ViewportControls = ({
|
|
6858
6936
|
const defaultsContainAutoZoom = defaultZoomOptions.find(
|
6859
6937
|
(option) => option.value === autoZoom
|
6860
6938
|
);
|
6861
|
-
const zoomOptions =
|
6939
|
+
const zoomOptions = useMemo16(
|
6862
6940
|
() => [
|
6863
6941
|
...defaultZoomOptions,
|
6864
6942
|
...defaultsContainAutoZoom ? [] : [
|
@@ -6981,17 +7059,17 @@ var Canvas = () => {
|
|
6981
7059
|
const { status, iframe } = useAppContext();
|
6982
7060
|
const { dispatch, state, overrides, setUi, zoomConfig, setZoomConfig } = useAppContext();
|
6983
7061
|
const { ui } = state;
|
6984
|
-
const frameRef =
|
7062
|
+
const frameRef = useRef8(null);
|
6985
7063
|
const [showTransition, setShowTransition] = useState24(false);
|
6986
|
-
const defaultRender =
|
7064
|
+
const defaultRender = useMemo17(() => {
|
6987
7065
|
const PuckDefault = ({ children }) => /* @__PURE__ */ jsx37(Fragment13, { children });
|
6988
7066
|
return PuckDefault;
|
6989
7067
|
}, []);
|
6990
|
-
const CustomPreview =
|
7068
|
+
const CustomPreview = useMemo17(
|
6991
7069
|
() => overrides.preview || defaultRender,
|
6992
7070
|
[overrides]
|
6993
7071
|
);
|
6994
|
-
const getFrameDimensions =
|
7072
|
+
const getFrameDimensions = useCallback16(() => {
|
6995
7073
|
if (frameRef.current) {
|
6996
7074
|
const frame = frameRef.current;
|
6997
7075
|
const box = getBox(frame);
|
@@ -6999,7 +7077,7 @@ var Canvas = () => {
|
|
6999
7077
|
}
|
7000
7078
|
return { width: 0, height: 0 };
|
7001
7079
|
}, [frameRef]);
|
7002
|
-
const resetAutoZoom =
|
7080
|
+
const resetAutoZoom = useCallback16(
|
7003
7081
|
(ui2 = state.ui) => {
|
7004
7082
|
if (frameRef.current) {
|
7005
7083
|
setZoomConfig(
|
@@ -7009,11 +7087,11 @@ var Canvas = () => {
|
|
7009
7087
|
},
|
7010
7088
|
[frameRef, zoomConfig, state.ui]
|
7011
7089
|
);
|
7012
|
-
|
7090
|
+
useEffect22(() => {
|
7013
7091
|
setShowTransition(false);
|
7014
7092
|
resetAutoZoom();
|
7015
7093
|
}, [frameRef, ui.leftSideBarVisible, ui.rightSideBarVisible]);
|
7016
|
-
|
7094
|
+
useEffect22(() => {
|
7017
7095
|
const { height: frameHeight } = getFrameDimensions();
|
7018
7096
|
if (ui.viewports.current.height === "auto") {
|
7019
7097
|
setZoomConfig(__spreadProps(__spreadValues({}, zoomConfig), {
|
@@ -7021,13 +7099,13 @@ var Canvas = () => {
|
|
7021
7099
|
}));
|
7022
7100
|
}
|
7023
7101
|
}, [zoomConfig.zoom]);
|
7024
|
-
|
7102
|
+
useEffect22(() => {
|
7025
7103
|
if (ZOOM_ON_CHANGE) {
|
7026
7104
|
setShowTransition(true);
|
7027
7105
|
resetAutoZoom(ui);
|
7028
7106
|
}
|
7029
7107
|
}, [ui.viewports.current.width]);
|
7030
|
-
|
7108
|
+
useEffect22(() => {
|
7031
7109
|
const cb = () => {
|
7032
7110
|
setShowTransition(false);
|
7033
7111
|
resetAutoZoom();
|
@@ -7038,7 +7116,7 @@ var Canvas = () => {
|
|
7038
7116
|
};
|
7039
7117
|
}, []);
|
7040
7118
|
const [showLoader, setShowLoader] = useState24(false);
|
7041
|
-
|
7119
|
+
useEffect22(() => {
|
7042
7120
|
setTimeout(() => {
|
7043
7121
|
setShowLoader(true);
|
7044
7122
|
}, 500);
|
@@ -7116,7 +7194,7 @@ var Canvas = () => {
|
|
7116
7194
|
|
7117
7195
|
// lib/use-loaded-overrides.ts
|
7118
7196
|
init_react_import();
|
7119
|
-
import { useMemo as
|
7197
|
+
import { useMemo as useMemo18 } from "react";
|
7120
7198
|
|
7121
7199
|
// lib/load-overrides.ts
|
7122
7200
|
init_react_import();
|
@@ -7155,7 +7233,7 @@ var useLoadedOverrides = ({
|
|
7155
7233
|
overrides,
|
7156
7234
|
plugins
|
7157
7235
|
}) => {
|
7158
|
-
return
|
7236
|
+
return useMemo18(() => {
|
7159
7237
|
return loadOverrides({ overrides, plugins });
|
7160
7238
|
}, [plugins, overrides]);
|
7161
7239
|
};
|
@@ -7167,14 +7245,14 @@ var DefaultOverride = ({ children }) => /* @__PURE__ */ jsx38(Fragment14, { chil
|
|
7167
7245
|
|
7168
7246
|
// lib/use-inject-css.ts
|
7169
7247
|
init_react_import();
|
7170
|
-
import { useEffect as
|
7248
|
+
import { useEffect as useEffect23, useState as useState25 } from "react";
|
7171
7249
|
var styles = ``;
|
7172
7250
|
var useInjectStyleSheet = (initialStyles, iframeEnabled) => {
|
7173
7251
|
const [el, setEl] = useState25();
|
7174
|
-
|
7252
|
+
useEffect23(() => {
|
7175
7253
|
setEl(document.createElement("style"));
|
7176
7254
|
}, []);
|
7177
|
-
|
7255
|
+
useEffect23(() => {
|
7178
7256
|
var _a;
|
7179
7257
|
if (!el || typeof window === "undefined") {
|
7180
7258
|
return;
|
@@ -7194,10 +7272,10 @@ var useInjectGlobalCss = (iframeEnabled) => {
|
|
7194
7272
|
|
7195
7273
|
// lib/use-preview-mode-hotkeys.ts
|
7196
7274
|
init_react_import();
|
7197
|
-
import { useCallback as
|
7275
|
+
import { useCallback as useCallback17 } from "react";
|
7198
7276
|
import { useHotkeys as useHotkeys2 } from "react-hotkeys-hook";
|
7199
7277
|
var usePreviewModeHotkeys = (dispatch, iframeEnabled) => {
|
7200
|
-
const toggleInteractive =
|
7278
|
+
const toggleInteractive = useCallback17(() => {
|
7201
7279
|
dispatch({
|
7202
7280
|
type: "setUi",
|
7203
7281
|
ui: (ui) => ({
|
@@ -7342,11 +7420,11 @@ function Puck({
|
|
7342
7420
|
const [menuOpen, setMenuOpen] = useState26(false);
|
7343
7421
|
const { itemSelector, leftSideBarVisible, rightSideBarVisible } = ui;
|
7344
7422
|
const selectedItem = itemSelector ? getItem(itemSelector, data) : null;
|
7345
|
-
|
7423
|
+
useEffect24(() => {
|
7346
7424
|
if (onChange) onChange(data);
|
7347
7425
|
}, [data]);
|
7348
7426
|
const rootProps = data.root.props || data.root;
|
7349
|
-
const toggleSidebars =
|
7427
|
+
const toggleSidebars = useCallback18(
|
7350
7428
|
(sidebar) => {
|
7351
7429
|
const widerViewport = window.matchMedia("(min-width: 638px)").matches;
|
7352
7430
|
const sideBarVisible = sidebar === "left" ? leftSideBarVisible : rightSideBarVisible;
|
@@ -7360,7 +7438,7 @@ function Puck({
|
|
7360
7438
|
},
|
7361
7439
|
[dispatch, leftSideBarVisible, rightSideBarVisible]
|
7362
7440
|
);
|
7363
|
-
|
7441
|
+
useEffect24(() => {
|
7364
7442
|
if (!window.matchMedia("(min-width: 638px)").matches) {
|
7365
7443
|
dispatch({
|
7366
7444
|
type: "setUi",
|
@@ -7383,7 +7461,7 @@ function Puck({
|
|
7383
7461
|
window.removeEventListener("resize", handleResize);
|
7384
7462
|
};
|
7385
7463
|
}, []);
|
7386
|
-
const defaultHeaderRender =
|
7464
|
+
const defaultHeaderRender = useMemo19(() => {
|
7387
7465
|
if (renderHeader) {
|
7388
7466
|
console.warn(
|
7389
7467
|
"`renderHeader` is deprecated. Please use `overrides.header` and the `usePuck` hook instead"
|
@@ -7397,7 +7475,7 @@ function Puck({
|
|
7397
7475
|
}
|
7398
7476
|
return DefaultOverride;
|
7399
7477
|
}, [renderHeader]);
|
7400
|
-
const defaultHeaderActionsRender =
|
7478
|
+
const defaultHeaderActionsRender = useMemo19(() => {
|
7401
7479
|
if (renderHeaderActions) {
|
7402
7480
|
console.warn(
|
7403
7481
|
"`renderHeaderActions` is deprecated. Please use `overrides.headerActions` and the `usePuck` hook instead."
|
@@ -7414,20 +7492,20 @@ function Puck({
|
|
7414
7492
|
overrides,
|
7415
7493
|
plugins
|
7416
7494
|
});
|
7417
|
-
const CustomPuck =
|
7495
|
+
const CustomPuck = useMemo19(
|
7418
7496
|
() => loadedOverrides.puck || DefaultOverride,
|
7419
7497
|
[loadedOverrides]
|
7420
7498
|
);
|
7421
|
-
const CustomHeader =
|
7499
|
+
const CustomHeader = useMemo19(
|
7422
7500
|
() => loadedOverrides.header || defaultHeaderRender,
|
7423
7501
|
[loadedOverrides]
|
7424
7502
|
);
|
7425
|
-
const CustomHeaderActions =
|
7503
|
+
const CustomHeaderActions = useMemo19(
|
7426
7504
|
() => loadedOverrides.headerActions || defaultHeaderActionsRender,
|
7427
7505
|
[loadedOverrides]
|
7428
7506
|
);
|
7429
7507
|
const [mounted, setMounted] = useState26(false);
|
7430
|
-
|
7508
|
+
useEffect24(() => {
|
7431
7509
|
setMounted(true);
|
7432
7510
|
}, []);
|
7433
7511
|
const selectedComponentConfig = selectedItem && config.components[selectedItem.type];
|