Spaces:
Runtime error
Runtime error
Thomas G. Lopes
commited on
Commit
·
9d4f7f4
1
Parent(s):
9472159
cheap perf improvement
Browse files- package.json +1 -1
- pnpm-lock.yaml +5 -5
- src/routes/canvas/+page.svelte +18 -5
package.json
CHANGED
|
@@ -60,7 +60,7 @@
|
|
| 60 |
"prettier": "^3.1.1",
|
| 61 |
"prettier-plugin-svelte": "^3.4.0",
|
| 62 |
"prettier-plugin-tailwindcss": "^0.6.11",
|
| 63 |
-
"runed": "^0.
|
| 64 |
"shiki": "^3.4.0",
|
| 65 |
"svelte": "^5.38.7",
|
| 66 |
"svelte-check": "^4.3.1",
|
|
|
|
| 60 |
"prettier": "^3.1.1",
|
| 61 |
"prettier-plugin-svelte": "^3.4.0",
|
| 62 |
"prettier-plugin-tailwindcss": "^0.6.11",
|
| 63 |
+
"runed": "^0.31.1",
|
| 64 |
"shiki": "^3.4.0",
|
| 65 |
"svelte": "^5.38.7",
|
| 66 |
"svelte-check": "^4.3.1",
|
pnpm-lock.yaml
CHANGED
|
@@ -166,8 +166,8 @@ importers:
|
|
| 166 |
specifier: ^0.6.11
|
| 167 |
version: 0.6.11([email protected]([email protected])([email protected]))([email protected])
|
| 168 |
runed:
|
| 169 |
-
specifier: ^0.
|
| 170 |
-
version: 0.
|
| 171 |
shiki:
|
| 172 |
specifier: ^3.4.0
|
| 173 |
version: 3.4.0
|
|
@@ -2897,8 +2897,8 @@ packages:
|
|
| 2897 |
peerDependencies:
|
| 2898 |
svelte: ^5.7.0
|
| 2899 |
|
| 2900 |
-
runed@0.
|
| 2901 |
-
resolution: {integrity: sha512-
|
| 2902 |
peerDependencies:
|
| 2903 |
svelte: ^5.7.0
|
| 2904 |
|
|
@@ -6061,7 +6061,7 @@ snapshots:
|
|
| 6061 |
esm-env: 1.2.2
|
| 6062 |
svelte: 5.38.7
|
| 6063 |
|
| 6064 |
-
runed@0.
|
| 6065 |
dependencies:
|
| 6066 |
esm-env: 1.2.2
|
| 6067 |
svelte: 5.38.7
|
|
|
|
| 166 |
specifier: ^0.6.11
|
| 167 |
version: 0.6.11([email protected]([email protected])([email protected]))([email protected])
|
| 168 |
runed:
|
| 169 |
+
specifier: ^0.31.1
|
| 170 |
+
version: 0.31.1([email protected])
|
| 171 |
shiki:
|
| 172 |
specifier: ^3.4.0
|
| 173 |
version: 3.4.0
|
|
|
|
| 2897 |
peerDependencies:
|
| 2898 |
svelte: ^5.7.0
|
| 2899 |
|
| 2900 |
+
runed@0.31.1:
|
| 2901 |
+
resolution: {integrity: sha512-v3czcTnO+EJjiPvD4dwIqfTdHLZ8oH0zJheKqAHh9QMViY7Qb29UlAMRpX7ZtHh7AFqV60KmfxaJ9QMy+L1igQ==}
|
| 2902 |
peerDependencies:
|
| 2903 |
svelte: ^5.7.0
|
| 2904 |
|
|
|
|
| 6061 |
esm-env: 1.2.2
|
| 6062 |
svelte: 5.38.7
|
| 6063 |
|
| 6064 |
+
runed@0.31.1([email protected]):
|
| 6065 |
dependencies:
|
| 6066 |
esm-env: 1.2.2
|
| 6067 |
svelte: 5.38.7
|
src/routes/canvas/+page.svelte
CHANGED
|
@@ -1,12 +1,13 @@
|
|
| 1 |
<script lang="ts">
|
|
|
|
|
|
|
|
|
|
| 2 |
import { Background, Controls, MiniMap, SvelteFlow } from "@xyflow/svelte";
|
| 3 |
import "@xyflow/svelte/dist/style.css";
|
|
|
|
|
|
|
| 4 |
import ChatNode from "./chat-node.svelte";
|
| 5 |
import { edges, nodes } from "./state.js";
|
| 6 |
-
import type { Node } from "@xyflow/svelte";
|
| 7 |
-
import IconAdd from "~icons/lucide/plus";
|
| 8 |
-
import { models } from "$lib/state/models.svelte";
|
| 9 |
-
import { projects } from "$lib/state/projects.svelte";
|
| 10 |
|
| 11 |
await models.load();
|
| 12 |
await projects.init();
|
|
@@ -31,6 +32,12 @@
|
|
| 31 |
};
|
| 32 |
nodes.current.push(newNode);
|
| 33 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
</script>
|
| 35 |
|
| 36 |
<div class="h-screen w-screen bg-gray-50">
|
|
@@ -55,7 +62,13 @@
|
|
| 55 |
</header>
|
| 56 |
|
| 57 |
<SvelteFlow
|
| 58 |
-
bind:nodes={
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
bind:edges={edges.current}
|
| 60 |
fitView
|
| 61 |
{nodeTypes}
|
|
|
|
| 1 |
<script lang="ts">
|
| 2 |
+
import { models } from "$lib/state/models.svelte";
|
| 3 |
+
import { projects } from "$lib/state/projects.svelte";
|
| 4 |
+
import type { Node } from "@xyflow/svelte";
|
| 5 |
import { Background, Controls, MiniMap, SvelteFlow } from "@xyflow/svelte";
|
| 6 |
import "@xyflow/svelte/dist/style.css";
|
| 7 |
+
import { useDebounce } from "runed";
|
| 8 |
+
import IconAdd from "~icons/lucide/plus";
|
| 9 |
import ChatNode from "./chat-node.svelte";
|
| 10 |
import { edges, nodes } from "./state.js";
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
|
| 12 |
await models.load();
|
| 13 |
await projects.init();
|
|
|
|
| 32 |
};
|
| 33 |
nodes.current.push(newNode);
|
| 34 |
}
|
| 35 |
+
|
| 36 |
+
let derivedNodes = $derived(nodes.current);
|
| 37 |
+
|
| 38 |
+
const throttledSave = useDebounce((n: Node[]) => {
|
| 39 |
+
nodes.current = n;
|
| 40 |
+
}, 100);
|
| 41 |
</script>
|
| 42 |
|
| 43 |
<div class="h-screen w-screen bg-gray-50">
|
|
|
|
| 62 |
</header>
|
| 63 |
|
| 64 |
<SvelteFlow
|
| 65 |
+
bind:nodes={
|
| 66 |
+
() => derivedNodes,
|
| 67 |
+
v => {
|
| 68 |
+
derivedNodes = v;
|
| 69 |
+
throttledSave(v);
|
| 70 |
+
}
|
| 71 |
+
}
|
| 72 |
bind:edges={edges.current}
|
| 73 |
fitView
|
| 74 |
{nodeTypes}
|