flow-lib-creomnia 1.0.10 → 1.0.11-dev.1

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.
@@ -27,6 +27,11 @@ export type IDrawerProps = {
27
27
  isOpen: boolean;
28
28
  onClose: () => void;
29
29
  onOpen: () => void;
30
+ externalNodeSettings?: {
31
+ enabled: boolean;
32
+ selectedNode: NodeType | null;
33
+ onSelectedNodeChange: (node: NodeType | null) => void;
34
+ };
30
35
  };
31
36
  export type PermissionsTypes = "canUpdate" | "canRead" | "canCreate" | "canDelete";
32
37
  export type Permissions = {
@@ -14,20 +14,37 @@ const settingsContextValue = {
14
14
  };
15
15
  const SettingsContext = (0, react_1.createContext)(settingsContextValue);
16
16
  exports.SettingsContext = SettingsContext;
17
- const NodeSettingsProvider = ({ children, permissions: { canUpdate, canDelete }, drawerProps: { isOpen, onClose, onOpen }, }) => {
18
- const [node, setNodeBase] = (0, react_1.useState)(null);
17
+ const NodeSettingsProvider = ({ children, permissions: { canUpdate, canDelete }, drawerProps: { isOpen, onClose, onOpen, externalNodeSettings }, }) => {
18
+ const [internalNode, setInternalNodeBase] = (0, react_1.useState)(null);
19
+ const isExternalNodeSettingsEnabled = !!externalNodeSettings?.enabled;
20
+ const node = isExternalNodeSettingsEnabled
21
+ ? externalNodeSettings?.selectedNode || null
22
+ : internalNode;
23
+ const setNodeBase = (nodeData) => {
24
+ if (isExternalNodeSettingsEnabled) {
25
+ externalNodeSettings?.onSelectedNodeChange(nodeData || null);
26
+ return;
27
+ }
28
+ setInternalNodeBase(nodeData || null);
29
+ };
19
30
  const setNode = (nodeData) => {
20
31
  const delay = node ? config_1.Config.SET_NODE_DELAY : 0;
21
32
  setTimeout(() => {
22
33
  setNodeBase(nodeData || null);
23
- onOpen();
34
+ if (!isExternalNodeSettingsEnabled) {
35
+ onOpen();
36
+ }
24
37
  }, delay);
25
38
  };
26
39
  const isNodeWithoutSave = node?.type && config_1.Config.NODES_WITHOUT_SAVE_BUTTON.includes(node?.type);
27
40
  const handleClose = () => {
41
+ if (isExternalNodeSettingsEnabled) {
42
+ externalNodeSettings?.onSelectedNodeChange(null);
43
+ return;
44
+ }
28
45
  onClose();
29
46
  setTimeout(() => {
30
- setNodeBase(null);
47
+ setInternalNodeBase(null);
31
48
  }, config_1.Config.CLEAR_NODE_DELAY);
32
49
  };
33
50
  const onSaveNode = () => {
@@ -44,6 +61,6 @@ const NodeSettingsProvider = ({ children, permissions: { canUpdate, canDelete },
44
61
  node?.settings?.footer?.onDelete?.(node?.id);
45
62
  handleClose();
46
63
  };
47
- return ((0, jsx_runtime_1.jsxs)(SettingsContext.Provider, { value: { node, setNode }, children: [children, canUpdate && ((0, jsx_runtime_1.jsx)(components_1.HorizontalDrawer, { open: isOpen, onClose: handleClose, HeaderContent: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(styled_1.IconWrapper, { children: [(0, jsx_runtime_1.jsx)(styled_1.IconBorder, {}), node?.icon] }), (0, jsx_runtime_1.jsx)(styled_1.NameContainer, { children: node?.nodeType || 'unknown' })] }), Content: (0, jsx_runtime_1.jsxs)(styled_1.SettingsContent, { children: [(0, jsx_runtime_1.jsx)(material_1.Box, { display: 'flex', flexDirection: 'column', flexGrow: 1, children: node?.settings?.settingsForm }), node?.settings?.customFooter ?? ((0, jsx_runtime_1.jsxs)(styled_1.DefaultFooterContainer, { children: [!isNodeWithoutSave && ((0, jsx_runtime_1.jsx)(material_2.Button, { onClick: onSaveNode, variant: "contained", children: node?.settings?.footer?.saveText || "Save" })), (0, jsx_runtime_1.jsx)(material_1.Box, { flexGrow: 1, children: (0, jsx_runtime_1.jsx)(material_2.Button, { variant: "outlined", onClick: onCancel, children: node?.settings?.footer?.cancelText || "Cancel " }) }), canDelete && ((0, jsx_runtime_1.jsx)(material_2.Button, { onClick: onDeleteNode, color: "error", variant: "text", children: node?.settings?.footer?.deleteText || "Delete node" }))] }))] }) }))] }));
64
+ return ((0, jsx_runtime_1.jsxs)(SettingsContext.Provider, { value: { node, setNode }, children: [children, canUpdate && !isExternalNodeSettingsEnabled && ((0, jsx_runtime_1.jsx)(components_1.HorizontalDrawer, { open: isOpen, onClose: handleClose, HeaderContent: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(styled_1.IconWrapper, { children: [(0, jsx_runtime_1.jsx)(styled_1.IconBorder, {}), node?.icon] }), (0, jsx_runtime_1.jsx)(styled_1.NameContainer, { children: node?.nodeType || 'unknown' })] }), Content: (0, jsx_runtime_1.jsxs)(styled_1.SettingsContent, { children: [(0, jsx_runtime_1.jsx)(material_1.Box, { display: 'flex', flexDirection: 'column', flexGrow: 1, children: node?.settings?.settingsForm }), node?.settings?.customFooter ?? ((0, jsx_runtime_1.jsxs)(styled_1.DefaultFooterContainer, { children: [!isNodeWithoutSave && ((0, jsx_runtime_1.jsx)(material_2.Button, { onClick: onSaveNode, variant: "contained", children: node?.settings?.footer?.saveText || "Save" })), (0, jsx_runtime_1.jsx)(material_1.Box, { flexGrow: 1, children: (0, jsx_runtime_1.jsx)(material_2.Button, { variant: "outlined", onClick: onCancel, children: node?.settings?.footer?.cancelText || "Cancel " }) }), canDelete && ((0, jsx_runtime_1.jsx)(material_2.Button, { onClick: onDeleteNode, color: "error", variant: "text", children: node?.settings?.footer?.deleteText || "Delete node" }))] }))] }) }))] }));
48
65
  };
49
66
  exports.NodeSettingsProvider = NodeSettingsProvider;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flow-lib-creomnia",
3
- "version": "1.0.10",
3
+ "version": "1.0.11-dev.1",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",