From b67b04980215fecb08bba7bd23d5d13e747e33ec Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Wed, 22 Feb 2023 22:04:39 +0100 Subject: [PATCH] refactor settings to nanostores --- packages/react/src/components/CodeMirror6.jsx | 2 +- pnpm-lock.yaml | 40 +++++++++++++++ website/package.json | 3 ++ website/src/components/HeadCommon.astro | 25 +++++----- website/src/docs/MiniRepl.jsx | 6 +-- website/src/repl/Footer.jsx | 19 +++---- website/src/repl/Repl.jsx | 8 +-- website/src/settings.mjs | 15 ++++++ website/src/store.mjs | 49 ------------------- website/src/useStore.mjs | 22 --------- website/src/useTheme.jsx | 14 ------ 11 files changed, 81 insertions(+), 122 deletions(-) create mode 100644 website/src/settings.mjs delete mode 100644 website/src/store.mjs delete mode 100644 website/src/useStore.mjs delete mode 100644 website/src/useTheme.jsx diff --git a/packages/react/src/components/CodeMirror6.jsx b/packages/react/src/components/CodeMirror6.jsx index 319fb7f7..1bcdc9ce 100644 --- a/packages/react/src/components/CodeMirror6.jsx +++ b/packages/react/src/components/CodeMirror6.jsx @@ -136,7 +136,7 @@ export default function CodeMirror({ return staticExtensions; }, [keybindings]); return ( -
+
<_CodeMirror value={value} theme={theme || strudelTheme} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d413286a..df59deb2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -362,6 +362,8 @@ importers: '@docsearch/react': ^3.1.0 '@headlessui/react': ^1.7.7 '@heroicons/react': ^2.0.13 + '@nanostores/persistent': ^0.7.0 + '@nanostores/react': ^0.4.1 '@strudel.cycles/core': workspace:* '@strudel.cycles/csound': workspace:* '@strudel.cycles/midi': workspace:* @@ -387,6 +389,7 @@ importers: fraction.js: ^4.2.0 html-escaper: ^3.0.3 nanoid: ^4.0.0 + nanostores: ^0.7.4 preact: ^10.7.3 react: ^18.2.0 react-dom: ^18.2.0 @@ -407,6 +410,8 @@ importers: '@docsearch/react': 3.3.2_y6lbs4o5th67cuzjdmtw5eqh7a '@headlessui/react': 1.7.8_biqbaboplfbrettd7655fr4n2y '@heroicons/react': 2.0.14_react@18.2.0 + '@nanostores/persistent': 0.7.0_nanostores@0.7.4 + '@nanostores/react': 0.4.1_nkfnbc2tpc77iht7asm3uqwau4 '@strudel.cycles/core': link:../packages/core '@strudel.cycles/csound': link:../packages/csound '@strudel.cycles/midi': link:../packages/midi @@ -430,6 +435,7 @@ importers: canvas: 2.11.0 fraction.js: 4.2.0 nanoid: 4.0.0 + nanostores: 0.7.4 preact: 10.11.3 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 @@ -3170,6 +3176,27 @@ packages: - supports-color dev: false + /@nanostores/persistent/0.7.0_nanostores@0.7.4: + resolution: {integrity: sha512-4PAInL/T1hbftZUJ0cmgdFHBMalUoq7BUXFBy7QfyMv/8X3LPTYNh/yxspL7+J+XM3UNvVI7IFRMMs6FBasjhQ==} + engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} + peerDependencies: + nanostores: ^0.7.0 + dependencies: + nanostores: 0.7.4 + dev: false + + /@nanostores/react/0.4.1_nkfnbc2tpc77iht7asm3uqwau4: + resolution: {integrity: sha512-lsv0CYrMxczbXtoV/mxFVEoL/uVjEjseoP89srO/5yNAOkJka+dSFS7LYyWEbuvCPO7EgbtkvRpO5V+OztKQOw==} + engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} + peerDependencies: + nanostores: ^0.7.0 + react: '>=18.0.0' + dependencies: + nanostores: 0.7.4 + react: 18.2.0 + use-sync-external-store: 1.2.0_react@18.2.0 + dev: false + /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -9646,6 +9673,11 @@ packages: hasBin: true dev: false + /nanostores/0.7.4: + resolution: {integrity: sha512-MBeUVt7NBcXqh7AGT+KSr3O0X/995CZsvcP2QEMP+PXFwb07qv3Vjyq+EX0yS8f12Vv3Tn2g/BvK/OZoMhJlOQ==} + engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0} + dev: false + /napi-build-utils/1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} dev: true @@ -12851,6 +12883,14 @@ packages: punycode: 2.3.0 dev: true + /use-sync-external-store/1.2.0_react@18.2.0: + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + /utf-8-validate/5.0.10: resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} engines: {node: '>=6.14.2'} diff --git a/website/package.json b/website/package.json index cf73f8cb..8d85481c 100644 --- a/website/package.json +++ b/website/package.json @@ -21,6 +21,8 @@ "@docsearch/react": "^3.1.0", "@headlessui/react": "^1.7.7", "@heroicons/react": "^2.0.13", + "@nanostores/persistent": "^0.7.0", + "@nanostores/react": "^0.4.1", "@strudel.cycles/core": "workspace:*", "@strudel.cycles/csound": "workspace:*", "@strudel.cycles/midi": "workspace:*", @@ -44,6 +46,7 @@ "canvas": "^2.11.0", "fraction.js": "^4.2.0", "nanoid": "^4.0.0", + "nanostores": "^0.7.4", "preact": "^10.7.3", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/website/src/components/HeadCommon.astro b/website/src/components/HeadCommon.astro index 47929bc6..24388a20 100644 --- a/website/src/components/HeadCommon.astro +++ b/website/src/components/HeadCommon.astro @@ -47,37 +47,34 @@ const base = BASE_URL;