@foresthubai/workflow-builder 0.4.1 → 0.4.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowBuilder.d.ts","sourceRoot":"","sources":["../src/WorkflowBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAgClE,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG5E,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAErF,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAErD;AAED,mCAAmC;AACnC,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEpD;AAMD,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,yEAAyE;IACzE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,sFAAsF;IACtF,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAGxC,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IAEpC,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,KAAK,EAAE,MAAM,IAAI,CAAC;IAGlB,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,WAAW,CAAC;IAG3B,QAAQ,EAAE,MAAM,IAAI,CAAC;IAGrB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IAGjB,aAAa,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACnD;AAOD,eAAO,MAAM,eAAe,wHAwS3B,CAAC"}
1
+ {"version":3,"file":"WorkflowBuilder.d.ts","sourceRoot":"","sources":["../src/WorkflowBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AA+BlE,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG5E,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAErF,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAErD;AAED,mCAAmC;AACnC,wBAAgB,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEpD;AAMD,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,yEAAyE;IACzE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,sFAAsF;IACtF,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAGxC,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IAEpC,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,KAAK,EAAE,MAAM,IAAI,CAAC;IAGlB,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,MAAM,WAAW,CAAC;IAG3B,QAAQ,EAAE,MAAM,IAAI,CAAC;IAGrB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IAGjB,aAAa,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACnD;AAOD,eAAO,MAAM,eAAe,wHAqS3B,CAAC"}
@@ -14,7 +14,7 @@ import { useFunctionDiagnosticsSync } from "./hooks/useFunctionDiagnosticsSync";
14
14
  import { useSuppressThemeTransition } from "./hooks/useSuppressThemeTransition";
15
15
  import { useFunctions } from "./hooks/useFunctions";
16
16
  import { useWorkflowSerialization, readStateFromStores } from "./hooks/useWorkflowSerialization";
17
- import { clearAllCanvasStores, getAllCanvasStores, getOrCreateCanvasStore, subscribeCanvasRegistryChanges, MAIN_CANVAS_ID, } from "./stores/canvasStore";
17
+ import { getAllCanvasStores, getOrCreateCanvasStore, subscribeCanvasRegistryChanges, MAIN_CANVAS_ID, } from "./stores/canvasStore";
18
18
  import { useDebugStore } from "./stores/debugStore";
19
19
  import { useEditorStore } from "./stores/editorStore";
20
20
  /** True when canvas mutations should be blocked (preview or debug). */
@@ -38,7 +38,7 @@ export const WorkflowBuilder = forwardRef(function WorkflowBuilder(props, ref) {
38
38
  if (language && i18n.language !== language)
39
39
  i18n.changeLanguage(language);
40
40
  }, [language]);
41
- const { importProject, exportProject } = useWorkflowSerialization();
41
+ const { importProject, exportProject, clearProject } = useWorkflowSerialization();
42
42
  // Color-mode toggles should snap, not fade — see hook docs.
43
43
  useSuppressThemeTransition();
44
44
  // Keep project-scoped (channel + memory + model) diagnostics in sync. Mounted
@@ -126,8 +126,12 @@ export const WorkflowBuilder = forwardRef(function WorkflowBuilder(props, ref) {
126
126
  try {
127
127
  if (initialMode)
128
128
  useEditorStore.getState().setBuilderMode(initialMode);
129
+ // No initialWorkflow → start empty; the module-level stores may still hold the
130
+ // previously mounted project, so clear them rather than leaving them untouched.
129
131
  if (initialWorkflow)
130
132
  importProject(initialWorkflow);
133
+ else
134
+ clearProject();
131
135
  }
132
136
  catch (e) {
133
137
  onError?.(e instanceof Error ? e : new Error(String(e)));
@@ -244,20 +248,14 @@ export const WorkflowBuilder = forwardRef(function WorkflowBuilder(props, ref) {
244
248
  }
245
249
  },
246
250
  exportWorkflow: () => exportProject(),
247
- clear: () => {
248
- clearAllCanvasStores();
249
- // Function declarations are project-scoped (not in canvas stores), so reset
250
- // them explicitly alongside the cleared bodies.
251
- useEditorStore.getState().setFunctions(() => ({}));
252
- useEditorStore.getState().clearSelection();
253
- },
251
+ clear: () => clearProject(),
254
252
  setMode: (mode) => useEditorStore.getState().setBuilderMode(mode),
255
253
  getMode: () => useEditorStore.getState().builderMode,
256
254
  validate: runValidate,
257
255
  undo: () => getOrCreateCanvasStore(useEditorStore.getState().activeCanvasId).undo(),
258
256
  redo: () => getOrCreateCanvasStore(useEditorStore.getState().activeCanvasId).redo(),
259
257
  setDebugPhase: (phase) => useDebugStore.getState().setPhase(phase),
260
- }), [importProject, exportProject, onError, runValidate]);
258
+ }), [importProject, exportProject, clearProject, onError, runValidate]);
261
259
  // I18nextProvider scopes the builder's PRIVATE i18n instance to this subtree,
262
260
  // so the useTranslation() consumers read it (never the host's i18next).
263
261
  //
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowBuilder.js","sourceRoot":"","sources":["../src/WorkflowBuilder.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowBuilder.js","sourceRoot":"","sources":["../src/WorkflowBuilder.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { type ApiWorkflow, type Workflow } from "@foresthubai/workflow-core/work
11
11
  export declare function useWorkflowSerialization(): {
12
12
  exportProject: () => ApiWorkflow;
13
13
  importProject: (workflow: ApiWorkflow) => void;
14
+ clearProject: () => void;
14
15
  };
15
16
  /**
16
17
  * Read the editor's live Zustand state into a {@link Workflow} literal.
@@ -1 +1 @@
1
- {"version":3,"file":"useWorkflowSerialization.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorkflowSerialization.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAe,MAAM,qCAAqC,CAAC;AAY3H;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB;yBAoDA,WAAW;8BAnDJ,WAAW,KAAG,IAAI;EAwDhE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,QAAQ,CAqC9C"}
1
+ {"version":3,"file":"useWorkflowSerialization.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorkflowSerialization.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAe,MAAM,qCAAqC,CAAC;AAY3H;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB;yBAiDA,WAAW;8BAhDJ,WAAW,KAAG,IAAI;wBAuD1B,IAAI;EAe1C;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,QAAQ,CAqC9C"}
@@ -1,7 +1,7 @@
1
1
  import { useCallback } from "react";
2
2
  import { serialize, deserialize } from "@foresthubai/workflow-core/workflow";
3
3
  import { migrate } from "@foresthubai/workflow-core/migration";
4
- import { clearAllCanvasStores, getOrCreateCanvasStore, getAllCanvasStores, notifyCanvasRegistryChange } from "../stores/canvasStore";
4
+ import { clearAllCanvasStores, getOrCreateCanvasStore, getAllCanvasStores, notifyCanvasRegistryChange, MAIN_CANVAS_ID } from "../stores/canvasStore";
5
5
  import { useEditorStore } from "../stores/editorStore";
6
6
  import { getReactFlowType } from "../utils/graphOperations";
7
7
  /**
@@ -43,18 +43,15 @@ export function useWorkflowSerialization() {
43
43
  // fully merged set core already computed (includes declared + fnarg).
44
44
  store.getState().setVariables(() => canvas.variables);
45
45
  }
46
+ // Reconcile project-scoped resources to exactly what this workflow declares.
47
+ // The editor stores are module-level and outlive the previously loaded project,
48
+ // so a workflow that declares none of a given kind must still reset it —
49
+ // otherwise the prior project's channels/memory/models bleed in (the canvas
50
+ // stores get this for free via clearAllCanvasStores above, as does setFunctions).
46
51
  const { channels, memory, models } = state;
47
- if (channels && Object.keys(channels).length > 0) {
48
- useEditorStore.getState().setChannels(() => channels);
49
- }
50
- if (memory && Object.keys(memory).length > 0) {
51
- useEditorStore.getState().setMemory(() => memory);
52
- }
53
- if (models && Object.keys(models).length > 0) {
54
- useEditorStore.getState().setModels(() => models);
55
- }
56
- // Replace the full function set (bodies are already initialized above, so the
57
- // migration subscription on setFunctions sees populated canvases).
52
+ useEditorStore.getState().setChannels(() => channels);
53
+ useEditorStore.getState().setMemory(() => memory);
54
+ useEditorStore.getState().setModels(() => models);
58
55
  useEditorStore.getState().setFunctions(() => state.functions);
59
56
  // The function canvas stores were created after clearAllCanvasStores' notify,
60
57
  // so tell WorkflowBuilder to re-subscribe to the new set.
@@ -63,7 +60,23 @@ export function useWorkflowSerialization() {
63
60
  const exportProject = useCallback(() => {
64
61
  return serialize(readStateFromStores());
65
62
  }, []);
66
- return { exportProject, importProject };
63
+ // Inverse of importProject: reset every (module-level) store to empty so a fresh
64
+ // builder never inherits the previously mounted project. Used by the clear() handle
65
+ // and on mount when no initialWorkflow is supplied.
66
+ const clearProject = useCallback(() => {
67
+ clearAllCanvasStores(); // drops all canvas stores, re-seeds an empty main, notifies
68
+ const editor = useEditorStore.getState();
69
+ // A stale non-main activeCanvasId would lazily resurrect a phantom function body.
70
+ editor.setActiveCanvas(MAIN_CANVAS_ID);
71
+ // Project-scoped resources aren't touched by clearAllCanvasStores. Empty only when
72
+ // non-empty so an already-clean store doesn't bump mutationCount (as importProject).
73
+ editor.setChannels((c) => (Object.keys(c).length ? {} : c));
74
+ editor.setMemory((m) => (Object.keys(m).length ? {} : m));
75
+ editor.setModels((m) => (Object.keys(m).length ? {} : m));
76
+ editor.setFunctions((f) => (Object.keys(f).length ? {} : f));
77
+ editor.clearSelection();
78
+ }, []);
79
+ return { exportProject, importProject, clearProject };
67
80
  }
68
81
  /**
69
82
  * Read the editor's live Zustand state into a {@link Workflow} literal.
@@ -1 +1 @@
1
- {"version":3,"file":"useWorkflowSerialization.js","sourceRoot":"","sources":["../../src/hooks/useWorkflowSerialization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useWorkflowSerialization.js","sourceRoot":"","sources":["../../src/hooks/useWorkflowSerialization.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foresthubai/workflow-builder",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "Reusable React component library: the workflow canvas/editor. Imports workflow-core for types and validation.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "repository": {
@@ -41,7 +41,7 @@
41
41
  "tailwindcss": "^3.4.0"
42
42
  },
43
43
  "dependencies": {
44
- "@foresthubai/workflow-core": "0.4.1",
44
+ "@foresthubai/workflow-core": "0.4.3",
45
45
  "@radix-ui/react-alert-dialog": "^1.1.1",
46
46
  "@radix-ui/react-checkbox": "^1.1.1",
47
47
  "@radix-ui/react-collapsible": "^1.1.0",
@@ -24,7 +24,6 @@ import { useSuppressThemeTransition } from "./hooks/useSuppressThemeTransition";
24
24
  import { useFunctions } from "./hooks/useFunctions";
25
25
  import { useWorkflowSerialization, readStateFromStores } from "./hooks/useWorkflowSerialization";
26
26
  import {
27
- clearAllCanvasStores,
28
27
  getAllCanvasStores,
29
28
  getOrCreateCanvasStore,
30
29
  subscribeCanvasRegistryChanges,
@@ -134,7 +133,7 @@ export const WorkflowBuilder = forwardRef<WorkflowBuilderHandle, WorkflowBuilder
134
133
  if (language && i18n.language !== language) i18n.changeLanguage(language);
135
134
  }, [language]);
136
135
 
137
- const { importProject, exportProject } = useWorkflowSerialization();
136
+ const { importProject, exportProject, clearProject } = useWorkflowSerialization();
138
137
 
139
138
  // Color-mode toggles should snap, not fade — see hook docs.
140
139
  useSuppressThemeTransition();
@@ -223,7 +222,10 @@ export const WorkflowBuilder = forwardRef<WorkflowBuilderHandle, WorkflowBuilder
223
222
  initialLoadDone.current = true;
224
223
  try {
225
224
  if (initialMode) useEditorStore.getState().setBuilderMode(initialMode);
225
+ // No initialWorkflow → start empty; the module-level stores may still hold the
226
+ // previously mounted project, so clear them rather than leaving them untouched.
226
227
  if (initialWorkflow) importProject(initialWorkflow);
228
+ else clearProject();
227
229
  } catch (e) {
228
230
  onError?.(e instanceof Error ? e : new Error(String(e)));
229
231
  }
@@ -352,13 +354,7 @@ export const WorkflowBuilder = forwardRef<WorkflowBuilderHandle, WorkflowBuilder
352
354
  }
353
355
  },
354
356
  exportWorkflow: () => exportProject(),
355
- clear: () => {
356
- clearAllCanvasStores();
357
- // Function declarations are project-scoped (not in canvas stores), so reset
358
- // them explicitly alongside the cleared bodies.
359
- useEditorStore.getState().setFunctions(() => ({}));
360
- useEditorStore.getState().clearSelection();
361
- },
357
+ clear: () => clearProject(),
362
358
  setMode: (mode) => useEditorStore.getState().setBuilderMode(mode),
363
359
  getMode: () => useEditorStore.getState().builderMode,
364
360
  validate: runValidate,
@@ -366,7 +362,7 @@ export const WorkflowBuilder = forwardRef<WorkflowBuilderHandle, WorkflowBuilder
366
362
  redo: () => getOrCreateCanvasStore(useEditorStore.getState().activeCanvasId).redo(),
367
363
  setDebugPhase: (phase) => useDebugStore.getState().setPhase(phase),
368
364
  }),
369
- [importProject, exportProject, onError, runValidate],
365
+ [importProject, exportProject, clearProject, onError, runValidate],
370
366
  );
371
367
 
372
368
  // I18nextProvider scopes the builder's PRIVATE i18n instance to this subtree,
@@ -7,7 +7,7 @@ import type { Channel } from "@foresthubai/workflow-core/channel";
7
7
  import type { Memory } from "@foresthubai/workflow-core/memory";
8
8
  import type { Model } from "@foresthubai/workflow-core/model";
9
9
  import { Edge, Node } from "@xyflow/react";
10
- import { clearAllCanvasStores, getOrCreateCanvasStore, getAllCanvasStores, notifyCanvasRegistryChange } from "../stores/canvasStore";
10
+ import { clearAllCanvasStores, getOrCreateCanvasStore, getAllCanvasStores, notifyCanvasRegistryChange, MAIN_CANVAS_ID } from "../stores/canvasStore";
11
11
  import { useEditorStore } from "../stores/editorStore";
12
12
  import { getReactFlowType } from "../utils/graphOperations";
13
13
 
@@ -53,18 +53,15 @@ export function useWorkflowSerialization() {
53
53
  store.getState().setVariables(() => canvas.variables);
54
54
  }
55
55
 
56
+ // Reconcile project-scoped resources to exactly what this workflow declares.
57
+ // The editor stores are module-level and outlive the previously loaded project,
58
+ // so a workflow that declares none of a given kind must still reset it —
59
+ // otherwise the prior project's channels/memory/models bleed in (the canvas
60
+ // stores get this for free via clearAllCanvasStores above, as does setFunctions).
56
61
  const { channels, memory, models } = state;
57
- if (channels && Object.keys(channels).length > 0) {
58
- useEditorStore.getState().setChannels(() => channels);
59
- }
60
- if (memory && Object.keys(memory).length > 0) {
61
- useEditorStore.getState().setMemory(() => memory);
62
- }
63
- if (models && Object.keys(models).length > 0) {
64
- useEditorStore.getState().setModels(() => models);
65
- }
66
- // Replace the full function set (bodies are already initialized above, so the
67
- // migration subscription on setFunctions sees populated canvases).
62
+ useEditorStore.getState().setChannels(() => channels);
63
+ useEditorStore.getState().setMemory(() => memory);
64
+ useEditorStore.getState().setModels(() => models);
68
65
  useEditorStore.getState().setFunctions(() => state.functions);
69
66
 
70
67
  // The function canvas stores were created after clearAllCanvasStores' notify,
@@ -76,7 +73,24 @@ export function useWorkflowSerialization() {
76
73
  return serialize(readStateFromStores());
77
74
  }, []);
78
75
 
79
- return { exportProject, importProject };
76
+ // Inverse of importProject: reset every (module-level) store to empty so a fresh
77
+ // builder never inherits the previously mounted project. Used by the clear() handle
78
+ // and on mount when no initialWorkflow is supplied.
79
+ const clearProject = useCallback((): void => {
80
+ clearAllCanvasStores(); // drops all canvas stores, re-seeds an empty main, notifies
81
+ const editor = useEditorStore.getState();
82
+ // A stale non-main activeCanvasId would lazily resurrect a phantom function body.
83
+ editor.setActiveCanvas(MAIN_CANVAS_ID);
84
+ // Project-scoped resources aren't touched by clearAllCanvasStores. Empty only when
85
+ // non-empty so an already-clean store doesn't bump mutationCount (as importProject).
86
+ editor.setChannels((c) => (Object.keys(c).length ? {} : c));
87
+ editor.setMemory((m) => (Object.keys(m).length ? {} : m));
88
+ editor.setModels((m) => (Object.keys(m).length ? {} : m));
89
+ editor.setFunctions((f) => (Object.keys(f).length ? {} : f));
90
+ editor.clearSelection();
91
+ }, []);
92
+
93
+ return { exportProject, importProject, clearProject };
80
94
  }
81
95
 
82
96
  /**