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(prettier-plugin-svelte@3.4.0(prettier@3.5.3)(svelte@5.38.7))(prettier@3.5.3)
|
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(prettier-plugin-svelte@3.4.0(prettier@3.5.3)(svelte@5.38.7))(prettier@3.5.3)
|
168 |
runed:
|
169 |
+
specifier: ^0.31.1
|
170 |
+
version: 0.31.1(svelte@5.38.7)
|
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(svelte@5.38.7):
|
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}
|