diff --git a/packages/svelte/src/lib/components/CallOnMount/CallOnMount.svelte b/packages/svelte/src/lib/components/CallOnMount/CallOnMount.svelte
new file mode 100644
index 00000000..4184da6f
--- /dev/null
+++ b/packages/svelte/src/lib/components/CallOnMount/CallOnMount.svelte
@@ -0,0 +1,14 @@
+
diff --git a/packages/svelte/src/lib/components/CallOnMount/index.ts b/packages/svelte/src/lib/components/CallOnMount/index.ts
new file mode 100644
index 00000000..3dee0d92
--- /dev/null
+++ b/packages/svelte/src/lib/components/CallOnMount/index.ts
@@ -0,0 +1 @@
+export { default as CallOnMount } from './CallOnMount.svelte';
diff --git a/packages/svelte/src/lib/container/EdgeRenderer/EdgeRenderer.svelte b/packages/svelte/src/lib/container/EdgeRenderer/EdgeRenderer.svelte
index 663b72ea..420259c3 100644
--- a/packages/svelte/src/lib/container/EdgeRenderer/EdgeRenderer.svelte
+++ b/packages/svelte/src/lib/container/EdgeRenderer/EdgeRenderer.svelte
@@ -1,6 +1,7 @@
createMarkerIds(edges, { defaultColor, id })
),
+ initialized: (() => {
+ console.log('This closure gets called');
+ let initialized = false;
+ const initialNodesLength = get(store.nodes).length;
+ const initialEdgesLength = get(store.edges).length;
+ return derived(
+ [store.nodesInitialized, store.edgesInitialized, store.viewportInitialized],
+ ([nodesInitialized, edgesInitialized, viewportInitialized]) => {
+ console.log('Get the derived store even called?');
+ // If it was already initialized once return true from then on
+ if (initialized) return initialized;
+
+ // if it hasn't been initialised check if is now
+ if (initialNodesLength === 0) {
+ initialized = viewportInitialized;
+ return initialized;
+ }
+ if (initialEdgesLength === 0) {
+ initialized = viewportInitialized && nodesInitialized;
+ return initialized;
+ }
+
+ initialized = viewportInitialized && nodesInitialized && edgesInitialized;
+ return initialized;
+ }
+ );
+ })(),
// actions
syncNodeStores: (nodes) => syncNodeStores(store.nodes, nodes),
diff --git a/packages/svelte/src/lib/store/initial-store.ts b/packages/svelte/src/lib/store/initial-store.ts
index 26c57c86..85d5e84b 100644
--- a/packages/svelte/src/lib/store/initial-store.ts
+++ b/packages/svelte/src/lib/store/initial-store.ts
@@ -152,6 +152,10 @@ export const getInitialStore = ({
onconnect: writable(undefined),
onconnectstart: writable(undefined),
onconnectend: writable(undefined),
- onbeforedelete: writable(undefined)
+ onbeforedelete: writable(undefined),
+ nodesInitialized: writable(false),
+ edgesInitialized: writable(false),
+ viewportInitialized: writable(false),
+ initialized: readable(false)
};
};