@uniformdev/canvas-react 19.35.1 → 19.35.3-alpha.82
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/index.d.mts +396 -0
- package/dist/index.d.ts +45 -56
- package/dist/index.esm.js +102 -90
- package/dist/index.js +126 -118
- package/dist/index.mjs +102 -90
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -43,7 +43,7 @@ __export(src_exports, {
|
|
|
43
43
|
createComponentStore: () => createComponentStore,
|
|
44
44
|
createComponentStoreResolver: () => createComponentStoreResolver,
|
|
45
45
|
createUniformApiEnhancer: () => import_canvas3.createUniformApiEnhancer,
|
|
46
|
-
getParameterAttributes: () =>
|
|
46
|
+
getParameterAttributes: () => getParameterAttributes2,
|
|
47
47
|
registerUniformComponent: () => registerUniformComponent,
|
|
48
48
|
useCompositionEventEffect: () => useCompositionEventEffect,
|
|
49
49
|
useUniformContextualEditing: () => useUniformContextualEditing,
|
|
@@ -327,7 +327,8 @@ function UniformComposition({
|
|
|
327
327
|
behaviorTracking = "onView",
|
|
328
328
|
children,
|
|
329
329
|
resolveRenderer,
|
|
330
|
-
contextualEditingEnhancer
|
|
330
|
+
contextualEditingEnhancer,
|
|
331
|
+
contextualEditingDefaultPlaceholder
|
|
331
332
|
}) {
|
|
332
333
|
const { composition, isContextualEditing } = useUniformContextualEditing({
|
|
333
334
|
initialCompositionValue: data,
|
|
@@ -343,7 +344,8 @@ function UniformComposition({
|
|
|
343
344
|
{
|
|
344
345
|
data: composition,
|
|
345
346
|
behaviorTracking,
|
|
346
|
-
resolveRenderer
|
|
347
|
+
resolveRenderer,
|
|
348
|
+
contextualEditingDefaultPlaceholder
|
|
347
349
|
},
|
|
348
350
|
children
|
|
349
351
|
))
|
|
@@ -531,7 +533,8 @@ function UniformComponent({
|
|
|
531
533
|
data,
|
|
532
534
|
resolveRenderer,
|
|
533
535
|
children,
|
|
534
|
-
behaviorTracking
|
|
536
|
+
behaviorTracking,
|
|
537
|
+
contextualEditingDefaultPlaceholder
|
|
535
538
|
}) {
|
|
536
539
|
var _a, _b, _c;
|
|
537
540
|
const parentData = useUniformCurrentComponent();
|
|
@@ -545,7 +548,8 @@ function UniformComponent({
|
|
|
545
548
|
const contextValue = {
|
|
546
549
|
data,
|
|
547
550
|
resolveRenderer: resolveRenderer || parentData.resolveRenderer || componentStoreResolver,
|
|
548
|
-
behaviorTracking: (_a = behaviorTracking != null ? behaviorTracking : parentData == null ? void 0 : parentData.behaviorTracking) != null ? _a : "onView"
|
|
551
|
+
behaviorTracking: (_a = behaviorTracking != null ? behaviorTracking : parentData == null ? void 0 : parentData.behaviorTracking) != null ? _a : "onView",
|
|
552
|
+
contextualEditingDefaultPlaceholder: contextualEditingDefaultPlaceholder != null ? contextualEditingDefaultPlaceholder : parentData.contextualEditingDefaultPlaceholder
|
|
549
553
|
};
|
|
550
554
|
const enrichmentTags = (_c = (_b = data.parameters) == null ? void 0 : _b[import_canvas6.CANVAS_ENRICHMENT_TAG_PARAM]) == null ? void 0 : _c.value;
|
|
551
555
|
const TrackComponent = contextValue.behaviorTracking === "onLoad" ? import_context_react2.TrackFragment : import_context_react2.Track;
|
|
@@ -585,56 +589,101 @@ function resolveChildren({
|
|
|
585
589
|
}
|
|
586
590
|
|
|
587
591
|
// src/components/UniformRichText/UniformRichText.tsx
|
|
592
|
+
var import_canvas8 = require("@uniformdev/canvas");
|
|
588
593
|
var import_richtext5 = require("@uniformdev/richtext");
|
|
589
|
-
var
|
|
594
|
+
var import_react17 = __toESM(require("react"));
|
|
595
|
+
|
|
596
|
+
// src/hooks/useUniformContextualEditingState.ts
|
|
597
|
+
var import_canvas7 = require("@uniformdev/canvas");
|
|
598
|
+
var import_react7 = require("react");
|
|
599
|
+
var useUniformContextualEditingState = ({
|
|
600
|
+
global = false
|
|
601
|
+
} = {}) => {
|
|
602
|
+
const { isContextualEditing } = useUniformCurrentComposition();
|
|
603
|
+
const { data: componentData } = useUniformCurrentComponent();
|
|
604
|
+
const [selectedComponentReference, setSelectedComponentReference] = (0, import_react7.useState)();
|
|
605
|
+
const channel = (0, import_react7.useMemo)(() => {
|
|
606
|
+
if (!isContextualEditing) {
|
|
607
|
+
return;
|
|
608
|
+
}
|
|
609
|
+
const channel2 = (0, import_canvas7.createCanvasChannel)({
|
|
610
|
+
broadcastTo: [window],
|
|
611
|
+
listenTo: [window]
|
|
612
|
+
});
|
|
613
|
+
return channel2;
|
|
614
|
+
}, [isContextualEditing]);
|
|
615
|
+
(0, import_react7.useEffect)(() => {
|
|
616
|
+
if (!channel) {
|
|
617
|
+
return;
|
|
618
|
+
}
|
|
619
|
+
const unsubscribe = channel.on("update-contextual-editing-state-internal", async (message) => {
|
|
620
|
+
var _a;
|
|
621
|
+
if (!(0, import_canvas7.isUpdateContextualEditingStateInternalMessage)(message)) {
|
|
622
|
+
return;
|
|
623
|
+
}
|
|
624
|
+
if (!global && (componentData == null ? void 0 : componentData._id) !== ((_a = message.state.selectedComponentReference) == null ? void 0 : _a.parentId)) {
|
|
625
|
+
setSelectedComponentReference(void 0);
|
|
626
|
+
return;
|
|
627
|
+
}
|
|
628
|
+
setSelectedComponentReference(message.state.selectedComponentReference);
|
|
629
|
+
});
|
|
630
|
+
return () => {
|
|
631
|
+
unsubscribe();
|
|
632
|
+
};
|
|
633
|
+
}, [global, channel, componentData == null ? void 0 : componentData._id]);
|
|
634
|
+
return {
|
|
635
|
+
isContextualEditing,
|
|
636
|
+
selectedComponentReference
|
|
637
|
+
};
|
|
638
|
+
};
|
|
590
639
|
|
|
591
640
|
// src/components/UniformRichText/UniformRichTextNode.tsx
|
|
592
641
|
var import_richtext4 = require("@uniformdev/richtext");
|
|
593
|
-
var
|
|
642
|
+
var import_react16 = __toESM(require("react"));
|
|
594
643
|
|
|
595
644
|
// src/components/UniformRichText/nodes/HeadingRichTextNode.tsx
|
|
596
|
-
var
|
|
645
|
+
var import_react8 = __toESM(require("react"));
|
|
597
646
|
var HeadingRichTextNode = ({ children, node }) => {
|
|
598
647
|
const { tag } = node;
|
|
599
648
|
const HTag = tag != null ? tag : "h1";
|
|
600
|
-
return /* @__PURE__ */
|
|
649
|
+
return /* @__PURE__ */ import_react8.default.createElement(HTag, null, children);
|
|
601
650
|
};
|
|
602
651
|
|
|
603
652
|
// src/components/UniformRichText/nodes/LinebreakRichTextNode.tsx
|
|
604
|
-
var
|
|
653
|
+
var import_react9 = __toESM(require("react"));
|
|
605
654
|
var LinebreakRichTextNode = () => {
|
|
606
|
-
return /* @__PURE__ */
|
|
655
|
+
return /* @__PURE__ */ import_react9.default.createElement("br", null);
|
|
607
656
|
};
|
|
608
657
|
|
|
609
658
|
// src/components/UniformRichText/nodes/LinkRichTextNode.tsx
|
|
610
659
|
var import_richtext = require("@uniformdev/richtext");
|
|
611
|
-
var
|
|
660
|
+
var import_react10 = __toESM(require("react"));
|
|
612
661
|
var LinkRichTextNode = ({ children, node }) => {
|
|
613
662
|
const { link } = node;
|
|
614
|
-
return /* @__PURE__ */
|
|
663
|
+
return /* @__PURE__ */ import_react10.default.createElement("a", { href: (0, import_richtext.linkParamValueToHref)(link) }, children);
|
|
615
664
|
};
|
|
616
665
|
|
|
617
666
|
// src/components/UniformRichText/nodes/ListItemRichTextNode.tsx
|
|
618
|
-
var
|
|
667
|
+
var import_react11 = __toESM(require("react"));
|
|
619
668
|
var ListItemRichTextNode = ({ children, node }) => {
|
|
620
669
|
const { value } = node;
|
|
621
|
-
return /* @__PURE__ */
|
|
670
|
+
return /* @__PURE__ */ import_react11.default.createElement("li", { value: Number.isFinite(value) && value > 0 ? value : void 0 }, children);
|
|
622
671
|
};
|
|
623
672
|
|
|
624
673
|
// src/components/UniformRichText/nodes/ListRichTextNode.tsx
|
|
625
|
-
var
|
|
674
|
+
var import_react12 = __toESM(require("react"));
|
|
626
675
|
var ListRichTextNode = ({ children, node }) => {
|
|
627
676
|
const { tag, start } = node;
|
|
628
677
|
const ListTag = tag != null ? tag : "ul";
|
|
629
|
-
return /* @__PURE__ */
|
|
678
|
+
return /* @__PURE__ */ import_react12.default.createElement(ListTag, { start: Number.isFinite(start) && start > 0 ? start : void 0 }, children);
|
|
630
679
|
};
|
|
631
680
|
|
|
632
681
|
// src/components/UniformRichText/nodes/ParagraphRichTextNode.tsx
|
|
633
682
|
var import_richtext2 = require("@uniformdev/richtext");
|
|
634
|
-
var
|
|
683
|
+
var import_react13 = __toESM(require("react"));
|
|
635
684
|
var ParagraphRichTextNode = ({ children, node }) => {
|
|
636
685
|
const { format, direction } = node;
|
|
637
|
-
return /* @__PURE__ */
|
|
686
|
+
return /* @__PURE__ */ import_react13.default.createElement(
|
|
638
687
|
"p",
|
|
639
688
|
{
|
|
640
689
|
dir: (0, import_richtext2.isPureDirection)(direction) ? direction : void 0,
|
|
@@ -645,18 +694,18 @@ var ParagraphRichTextNode = ({ children, node }) => {
|
|
|
645
694
|
};
|
|
646
695
|
|
|
647
696
|
// src/components/UniformRichText/nodes/TabRichTextNode.tsx
|
|
648
|
-
var
|
|
697
|
+
var import_react14 = __toESM(require("react"));
|
|
649
698
|
var TabRichTextNode = () => {
|
|
650
|
-
return /* @__PURE__ */
|
|
699
|
+
return /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, " ");
|
|
651
700
|
};
|
|
652
701
|
|
|
653
702
|
// src/components/UniformRichText/nodes/TextRichTextNode.tsx
|
|
654
703
|
var import_richtext3 = require("@uniformdev/richtext");
|
|
655
|
-
var
|
|
704
|
+
var import_react15 = __toESM(require("react"));
|
|
656
705
|
var TextRichTextNode = ({ node }) => {
|
|
657
706
|
const { text, format } = node;
|
|
658
707
|
const tags = (0, import_richtext3.getRichTextTagsFromTextFormat)(format);
|
|
659
|
-
return /* @__PURE__ */
|
|
708
|
+
return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, tags.length > 0 ? tags.reduceRight((children, Tag) => /* @__PURE__ */ import_react15.default.createElement(Tag, null, children), text) : text);
|
|
660
709
|
};
|
|
661
710
|
|
|
662
711
|
// src/components/UniformRichText/UniformRichTextNode.tsx
|
|
@@ -671,8 +720,8 @@ function UniformRichTextNode({ node, ...props }) {
|
|
|
671
720
|
if (!NodeRenderer) {
|
|
672
721
|
return null;
|
|
673
722
|
}
|
|
674
|
-
const children = node.children ? node.children.map((childNode, i) => /* @__PURE__ */
|
|
675
|
-
return /* @__PURE__ */
|
|
723
|
+
const children = node.children ? node.children.map((childNode, i) => /* @__PURE__ */ import_react16.default.createElement(UniformRichTextNode, { ...props, key: i, node: childNode })) : null;
|
|
724
|
+
return /* @__PURE__ */ import_react16.default.createElement(NodeRenderer, { node }, children);
|
|
676
725
|
}
|
|
677
726
|
var rendererMap = /* @__PURE__ */ new Map([
|
|
678
727
|
["heading", HeadingRichTextNode],
|
|
@@ -681,12 +730,12 @@ var rendererMap = /* @__PURE__ */ new Map([
|
|
|
681
730
|
["list", ListRichTextNode],
|
|
682
731
|
["listitem", ListItemRichTextNode],
|
|
683
732
|
["paragraph", ParagraphRichTextNode],
|
|
684
|
-
["quote", ({ children }) => /* @__PURE__ */
|
|
733
|
+
["quote", ({ children }) => /* @__PURE__ */ import_react16.default.createElement("blockquote", null, children)],
|
|
685
734
|
[
|
|
686
735
|
"code",
|
|
687
|
-
({ children }) => /* @__PURE__ */
|
|
736
|
+
({ children }) => /* @__PURE__ */ import_react16.default.createElement("pre", null, /* @__PURE__ */ import_react16.default.createElement("code", null, children))
|
|
688
737
|
],
|
|
689
|
-
["root", ({ children }) => /* @__PURE__ */
|
|
738
|
+
["root", ({ children }) => /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children)],
|
|
690
739
|
["text", TextRichTextNode],
|
|
691
740
|
["tab", TabRichTextNode]
|
|
692
741
|
]);
|
|
@@ -695,20 +744,34 @@ var resolveRichTextDefaultRenderer = (node) => {
|
|
|
695
744
|
};
|
|
696
745
|
|
|
697
746
|
// src/components/UniformRichText/UniformRichText.tsx
|
|
698
|
-
var UniformRichText =
|
|
747
|
+
var UniformRichText = import_react17.default.forwardRef(function UniformRichText2({ parameterId, resolveRichTextRenderer, as: Tag = "div", ...props }, ref) {
|
|
699
748
|
const { data: componentData } = useUniformCurrentComponent();
|
|
700
|
-
const
|
|
749
|
+
const { selectedComponentReference } = useUniformContextualEditingState({ global: true });
|
|
750
|
+
const parameter = (0, import_react17.useMemo)(() => {
|
|
701
751
|
var _a;
|
|
702
752
|
return (_a = componentData == null ? void 0 : componentData.parameters) == null ? void 0 : _a[parameterId];
|
|
703
753
|
}, [componentData, parameterId]);
|
|
704
|
-
const value = (0,
|
|
754
|
+
const value = (0, import_react17.useMemo)(() => parameter == null ? void 0 : parameter.value, [parameter]);
|
|
705
755
|
if (!value || !(0, import_richtext5.isRichTextValue)(value) || (0, import_richtext5.isRichTextValueConsideredEmpty)(value))
|
|
706
756
|
return null;
|
|
707
|
-
return Tag === null ? /* @__PURE__ */
|
|
757
|
+
return Tag === null ? /* @__PURE__ */ import_react17.default.createElement(UniformRichTextNode, { node: value.root, resolveRichTextRenderer }) : /* @__PURE__ */ import_react17.default.createElement(
|
|
758
|
+
Tag,
|
|
759
|
+
{
|
|
760
|
+
ref,
|
|
761
|
+
...props,
|
|
762
|
+
...(0, import_canvas8.getParameterAttributes)({
|
|
763
|
+
component: componentData,
|
|
764
|
+
id: parameterId
|
|
765
|
+
}),
|
|
766
|
+
tabIndex: 0,
|
|
767
|
+
"data-uniform-selected-parameter": (selectedComponentReference == null ? void 0 : selectedComponentReference.id) === parameterId && selectedComponentReference.parentId === (componentData == null ? void 0 : componentData._id)
|
|
768
|
+
},
|
|
769
|
+
/* @__PURE__ */ import_react17.default.createElement(UniformRichTextNode, { node: value.root, resolveRichTextRenderer })
|
|
770
|
+
);
|
|
708
771
|
});
|
|
709
772
|
|
|
710
773
|
// src/components/UniformText.tsx
|
|
711
|
-
var
|
|
774
|
+
var import_react18 = __toESM(require("react"));
|
|
712
775
|
var UniformText = ({
|
|
713
776
|
as: Tag = "span",
|
|
714
777
|
parameterId,
|
|
@@ -717,25 +780,23 @@ var UniformText = ({
|
|
|
717
780
|
render = (value) => value,
|
|
718
781
|
...props
|
|
719
782
|
}) => {
|
|
720
|
-
|
|
783
|
+
var _a, _b;
|
|
784
|
+
const { data: componentData, contextualEditingDefaultPlaceholder } = useUniformCurrentComponent();
|
|
721
785
|
const { isContextualEditing } = useUniformCurrentComposition();
|
|
722
|
-
const [isFocused, setIsFocused] = (0,
|
|
723
|
-
const parameter = (0,
|
|
724
|
-
var
|
|
725
|
-
return (
|
|
786
|
+
const [isFocused, setIsFocused] = (0, import_react18.useState)(false);
|
|
787
|
+
const parameter = (0, import_react18.useMemo)(() => {
|
|
788
|
+
var _a2;
|
|
789
|
+
return (_a2 = componentData == null ? void 0 : componentData.parameters) == null ? void 0 : _a2[parameterId];
|
|
726
790
|
}, [componentData, parameterId]);
|
|
727
|
-
const value =
|
|
728
|
-
const isEditable = (0
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
}, [parameter]);
|
|
732
|
-
const handleOnFocus = (0, import_react17.useCallback)(() => {
|
|
791
|
+
const value = parameter == null ? void 0 : parameter.value;
|
|
792
|
+
const isEditable = (_b = (_a = parameter == null ? void 0 : parameter._contextualEditing) == null ? void 0 : _a.isEditable) != null ? _b : false;
|
|
793
|
+
const shouldSkipCustomRendering = isFocused && isEditable;
|
|
794
|
+
const handleOnFocus = (0, import_react18.useCallback)(() => {
|
|
733
795
|
setIsFocused(true);
|
|
734
796
|
}, [setIsFocused]);
|
|
735
|
-
const handleOnBlur = (0,
|
|
797
|
+
const handleOnBlur = (0, import_react18.useCallback)(() => {
|
|
736
798
|
setIsFocused(false);
|
|
737
799
|
}, [setIsFocused]);
|
|
738
|
-
const shouldSkipCustomRendering = (0, import_react17.useMemo)(() => isFocused && isEditable, [isFocused, isEditable]);
|
|
739
800
|
if (!parameter) {
|
|
740
801
|
console.warn(
|
|
741
802
|
`UniformText: The parameterId "${parameterId}" was not found in the component of type "${componentData == null ? void 0 : componentData.type}"`
|
|
@@ -743,21 +804,22 @@ var UniformText = ({
|
|
|
743
804
|
return null;
|
|
744
805
|
}
|
|
745
806
|
if (!isContextualEditing) {
|
|
746
|
-
return /* @__PURE__ */
|
|
807
|
+
return /* @__PURE__ */ import_react18.default.createElement(Tag, { style: isMultiline ? { whiteSpace: "pre-wrap" } : {}, ...props }, render(value));
|
|
747
808
|
}
|
|
748
|
-
|
|
809
|
+
const placeholderProp = placeholder != null ? placeholder : contextualEditingDefaultPlaceholder;
|
|
810
|
+
const computedPlaceholder = typeof placeholderProp === "function" ? placeholderProp({ id: parameterId }) : placeholderProp;
|
|
811
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
749
812
|
Tag,
|
|
750
813
|
{
|
|
751
814
|
...props,
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
815
|
+
...getParameterAttributes2({
|
|
816
|
+
component: componentData,
|
|
817
|
+
id: parameterId,
|
|
818
|
+
isMultiline
|
|
819
|
+
}),
|
|
755
820
|
"data-uniform-parameter-type": "text",
|
|
756
|
-
"data-uniform-
|
|
757
|
-
"data-uniform-placeholder": placeholder,
|
|
821
|
+
"data-uniform-placeholder": computedPlaceholder,
|
|
758
822
|
style: isMultiline ? { whiteSpace: "pre-wrap" } : {},
|
|
759
|
-
contentEditable: isEditable,
|
|
760
|
-
suppressContentEditableWarning: true,
|
|
761
823
|
onFocus: handleOnFocus,
|
|
762
824
|
onBlur: handleOnBlur
|
|
763
825
|
},
|
|
@@ -766,45 +828,35 @@ var UniformText = ({
|
|
|
766
828
|
};
|
|
767
829
|
|
|
768
830
|
// src/helpers/getParameterAttributes.ts
|
|
769
|
-
var
|
|
770
|
-
|
|
771
|
-
const componentId = component == null ? void 0 : component._id;
|
|
772
|
-
const parameter = (_a = component == null ? void 0 : component.parameters) == null ? void 0 : _a[id];
|
|
773
|
-
const value = parameter == null ? void 0 : parameter.value;
|
|
774
|
-
const type = parameter == null ? void 0 : parameter.type;
|
|
775
|
-
const isEditable = (_c = (_b = parameter == null ? void 0 : parameter._contextualEditing) == null ? void 0 : _b.isEditable) != null ? _c : false;
|
|
831
|
+
var import_canvas9 = require("@uniformdev/canvas");
|
|
832
|
+
var getParameterAttributes2 = (options) => {
|
|
776
833
|
return {
|
|
777
|
-
|
|
778
|
-
"data-uniform-parameter-id": id,
|
|
779
|
-
"data-uniform-parameter-value": value != null ? value : "",
|
|
780
|
-
"data-uniform-parameter-type": type,
|
|
781
|
-
"data-uniform-placeholder": placeholder,
|
|
782
|
-
contentEditable: isEditable,
|
|
834
|
+
...(0, import_canvas9.getParameterAttributes)(options),
|
|
783
835
|
suppressContentEditableWarning: true
|
|
784
836
|
};
|
|
785
837
|
};
|
|
786
838
|
|
|
787
839
|
// src/hooks/useCompositionEventEffect.ts
|
|
788
|
-
var
|
|
789
|
-
var
|
|
840
|
+
var import_canvas10 = require("@uniformdev/canvas");
|
|
841
|
+
var import_react19 = require("react");
|
|
790
842
|
function useCompositionEventEffect({
|
|
791
843
|
enabled,
|
|
792
844
|
projectId,
|
|
793
845
|
compositionId,
|
|
794
846
|
effect
|
|
795
847
|
}) {
|
|
796
|
-
(0,
|
|
848
|
+
(0, import_react19.useEffect)(() => {
|
|
797
849
|
if (!enabled || !compositionId || !projectId) {
|
|
798
850
|
return;
|
|
799
851
|
}
|
|
800
852
|
let goodbye = void 0;
|
|
801
853
|
const loadEffect = async () => {
|
|
802
|
-
const eventBus = await (0,
|
|
854
|
+
const eventBus = await (0, import_canvas10.createEventBus)();
|
|
803
855
|
if (eventBus) {
|
|
804
|
-
goodbye = (0,
|
|
856
|
+
goodbye = (0, import_canvas10.subscribeToComposition)({
|
|
805
857
|
eventBus,
|
|
806
858
|
compositionId,
|
|
807
|
-
compositionState:
|
|
859
|
+
compositionState: import_canvas10.CANVAS_DRAFT_STATE,
|
|
808
860
|
projectId,
|
|
809
861
|
callback: effect,
|
|
810
862
|
event: "updated"
|
|
@@ -819,50 +871,6 @@ function useCompositionEventEffect({
|
|
|
819
871
|
};
|
|
820
872
|
}, [compositionId, enabled, projectId, effect]);
|
|
821
873
|
}
|
|
822
|
-
|
|
823
|
-
// src/hooks/useUniformContextualEditingState.ts
|
|
824
|
-
var import_canvas8 = require("@uniformdev/canvas");
|
|
825
|
-
var import_react19 = require("react");
|
|
826
|
-
var useUniformContextualEditingState = ({
|
|
827
|
-
global = false
|
|
828
|
-
} = {}) => {
|
|
829
|
-
const { isContextualEditing } = useUniformCurrentComposition();
|
|
830
|
-
const { data: componentData } = useUniformCurrentComponent();
|
|
831
|
-
const [selectedComponentReference, setSelectedComponentReference] = (0, import_react19.useState)();
|
|
832
|
-
const channel = (0, import_react19.useMemo)(() => {
|
|
833
|
-
if (!isContextualEditing) {
|
|
834
|
-
return;
|
|
835
|
-
}
|
|
836
|
-
const channel2 = (0, import_canvas8.createCanvasChannel)({
|
|
837
|
-
broadcastTo: [window],
|
|
838
|
-
listenTo: [window]
|
|
839
|
-
});
|
|
840
|
-
return channel2;
|
|
841
|
-
}, [isContextualEditing]);
|
|
842
|
-
(0, import_react19.useEffect)(() => {
|
|
843
|
-
if (!channel) {
|
|
844
|
-
return;
|
|
845
|
-
}
|
|
846
|
-
const unsubscribe = channel.on("update-contextual-editing-state-internal", async (message) => {
|
|
847
|
-
var _a;
|
|
848
|
-
if (!(0, import_canvas8.isUpdateContextualEditingStateInternalMessage)(message)) {
|
|
849
|
-
return;
|
|
850
|
-
}
|
|
851
|
-
if (!global && (componentData == null ? void 0 : componentData._id) !== ((_a = message.state.selectedComponentReference) == null ? void 0 : _a.parentId)) {
|
|
852
|
-
setSelectedComponentReference(void 0);
|
|
853
|
-
return;
|
|
854
|
-
}
|
|
855
|
-
setSelectedComponentReference(message.state.selectedComponentReference);
|
|
856
|
-
});
|
|
857
|
-
return () => {
|
|
858
|
-
unsubscribe();
|
|
859
|
-
};
|
|
860
|
-
}, [global, channel, componentData == null ? void 0 : componentData._id]);
|
|
861
|
-
return {
|
|
862
|
-
isContextualEditing,
|
|
863
|
-
selectedComponentReference
|
|
864
|
-
};
|
|
865
|
-
};
|
|
866
874
|
// Annotate the CommonJS export names for ESM import in node:
|
|
867
875
|
0 && (module.exports = {
|
|
868
876
|
DefaultNotImplementedComponent,
|