From 44549c36bef69041752b92bed9a500fd859a0d05 Mon Sep 17 00:00:00 2001 From: Chris Kruining Date: Tue, 25 Feb 2025 22:44:06 +1100 Subject: [PATCH] refactor hacky tracking to solid primitive --- bun.lock | 5 +++++ package.json | 1 + src/features/dataset/index.ts | 4 ++-- src/i18n/en-GB.json | 4 ++-- src/i18n/nl-NL.json | 4 ++-- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/bun.lock b/bun.lock index 5577395..21f03d8 100644 --- a/bun.lock +++ b/bun.lock @@ -6,6 +6,7 @@ "dependencies": { "@solid-primitives/clipboard": "^1.6.0", "@solid-primitives/context": "^0.3.0", + "@solid-primitives/deep": "^0.3.0", "@solid-primitives/destructure": "^0.2.0", "@solid-primitives/event-listener": "^2.4.0", "@solid-primitives/i18n": "^2.2.0", @@ -358,6 +359,8 @@ "@solid-primitives/cursor": ["@solid-primitives/cursor@0.0.115", "", { "dependencies": { "@solid-primitives/utils": "^6.2.3" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-8nEmUN/sacXPChwuJOAi6Yi6VnxthW/Jk8VGvvcF38AenjUvOA6FHI6AkJILuFXjQw1PGxia1YbH/Mn77dPiOA=="], + "@solid-primitives/deep": ["@solid-primitives/deep@0.3.0", "", { "dependencies": { "@solid-primitives/memo": "^1.4.0" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-v+B8OYCSqGpjQdj9SyJxydlyb+px4/i834ksTtPhv13OsLtibKreY5raOxelYuh/sX2MNFW8NTSsrWt+xo6D+Q=="], + "@solid-primitives/destructure": ["@solid-primitives/destructure@0.2.0", "", { "dependencies": { "@solid-primitives/utils": "^6.3.0" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-nfE6nSkyLle+hIQzvxGwzyt3TvFwgBjhFiQ7y2Cq+amBiwpvVVm+1qncE8tKaKk6JNn/CilgXZgJ/KMb/p3csA=="], "@solid-primitives/event-listener": ["@solid-primitives/event-listener@2.4.0", "", { "dependencies": { "@solid-primitives/utils": "^6.3.0" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-TSfR1PNTfojFEYGSxSMCnUhXsaYWBo4p+cm73QmWODa9YnaQAk6PB7VjzG2bOT2D817VlvuOqTj0Qdq+MZrdGg=="], @@ -368,6 +371,8 @@ "@solid-primitives/media": ["@solid-primitives/media@2.3.0", "", { "dependencies": { "@solid-primitives/event-listener": "^2.4.0", "@solid-primitives/rootless": "^1.5.0", "@solid-primitives/static-store": "^0.1.0", "@solid-primitives/utils": "^6.3.0" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-7+C3wfbWnGE/WPoNsqcp/EeOP2aNNB92RCpsWhBth8E5lZo/J+rK6jMb7umVsK0zguT8HBpeXp1pFyFbcsHStA=="], + "@solid-primitives/memo": ["@solid-primitives/memo@1.4.0", "", { "dependencies": { "@solid-primitives/scheduled": "^1.5.0", "@solid-primitives/utils": "^6.3.0" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-Q0eSnGnhzbUPUNES2OOcEj6qF/9YZntoq04nmQEAIp6QhKdpAsH9mNFrVQtB1by41H/QndNui7Yd2wjI7PUpPA=="], + "@solid-primitives/platform": ["@solid-primitives/platform@0.1.2", "", { "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-sSxcZfuUrtxcwV0vdjmGnZQcflACzMfLriVeIIWXKp8hzaS3Or3tO6EFQkTd3L8T5dTq+kTtLvPscXIpL0Wzdg=="], "@solid-primitives/refs": ["@solid-primitives/refs@1.1.0", "", { "dependencies": { "@solid-primitives/utils": "^6.3.0" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-QJ3bTSQOlPdHBP2m6llrT13FvVzAwZfx41lTN8lQrRwwcZoWb7kfCAjhaohPnwkAsQ6nJpLjtGfT5GOyuCA4tA=="], diff --git a/package.json b/package.json index 8bc887c..d65e4b7 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "dependencies": { "@solid-primitives/clipboard": "^1.6.0", "@solid-primitives/context": "^0.3.0", + "@solid-primitives/deep": "^0.3.0", "@solid-primitives/destructure": "^0.2.0", "@solid-primitives/event-listener": "^2.4.0", "@solid-primitives/i18n": "^2.2.0", diff --git a/src/features/dataset/index.ts b/src/features/dataset/index.ts index 3be2c4c..6c948ee 100644 --- a/src/features/dataset/index.ts +++ b/src/features/dataset/index.ts @@ -1,3 +1,4 @@ +import { trackStore } from "@solid-primitives/deep"; import { Accessor, createEffect, createMemo, untrack } from "solid-js"; import { createStore } from "solid-js/store"; import { CustomPartial } from "solid-js/store/types/store.js"; @@ -93,8 +94,7 @@ export const createDataSet = >(data: Accessor }); const mutations = createMemo(() => { - // enumerate all values to make sure the memo is recalculated on any change - Object.values(state.value).map(entry => Object.values(entry ?? {})); + trackStore(state.value); return deepDiff(state.snapshot, state.value).toArray(); }); diff --git a/src/i18n/en-GB.json b/src/i18n/en-GB.json index 99965bd..77d2e73 100644 --- a/src/i18n/en-GB.json +++ b/src/i18n/en-GB.json @@ -35,7 +35,7 @@ "newKey": { "title": "Which key do you want to create?", "placeholder": "Name of the new key", - "description": "Hint: use `.` to denote nested keys,\ni.e. `this.is.some.key` would be a key that is four levels deep." + "description": "Hint: use `.` to denote nested keys,\n\ni.e. `this.is.some.key` would be a key that is four levels deep." }, "newLanguage": { "title": "Which language do you want to add?", @@ -51,4 +51,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/i18n/nl-NL.json b/src/i18n/nl-NL.json index faab271..827dc45 100644 --- a/src/i18n/nl-NL.json +++ b/src/i18n/nl-NL.json @@ -35,7 +35,7 @@ "newKey": { "title": "Welke sleutel wil je toevoegen?", "placeholder": "Naam van de nieuwe sleutel", - "description": "Hint: gebruik een `.` voor geneste sleutels,\nbijv. `this.is.some.key` is een sleutel die vier lagen diep is." + "description": "Hint: gebruik een `.` voor geneste sleutels,\n\nbijv. `this.is.some.key` is een sleutel die vier lagen diep is." }, "newLanguage": { "title": "Welke taal wil je toevoegen?", @@ -51,4 +51,4 @@ } } } -} +} \ No newline at end of file