From 21c6d0b8f938599e85debf8a9bd6b4f526d4f995 Mon Sep 17 00:00:00 2001 From: Donald Zou Date: Tue, 12 Aug 2025 17:22:40 +0800 Subject: [PATCH] Migrated configuration sorting to Pinia store Fixed #841 --- src/static/app/package-lock.json | 46 +++++++++++++++ src/static/app/package.json | 1 + .../configurationComponents/peer.vue | 1 + .../configurationComponents/peerList.vue | 11 ++++ .../configurationComponents/peerSearch.vue | 13 ---- .../configurationComponents/peerSearchBar.vue | 11 +++- .../app/src/components/configurationList.vue | 59 ++++++++----------- src/static/app/src/components/navbar.vue | 6 +- src/static/app/src/main.js | 4 +- .../stores/WireguardConfigurationsStore.js | 40 ++++++++++++- 10 files changed, 137 insertions(+), 55 deletions(-) diff --git a/src/static/app/package-lock.json b/src/static/app/package-lock.json index cad6fd7b..4407cd37 100644 --- a/src/static/app/package-lock.json +++ b/src/static/app/package-lock.json @@ -25,6 +25,7 @@ "npm": "^10.5.0", "ol": "^10.2.1", "pinia": "^3.0.3", + "pinia-plugin-persistedstate": "^4.5.0", "qrcode": "^1.5.3", "qrcodejs": "^1.0.0", "simple-code-editor": "^2.0.9", @@ -3030,6 +3031,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/deep-pick-omit": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/deep-pick-omit/-/deep-pick-omit-1.2.1.tgz", + "integrity": "sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw==", + "license": "MIT" + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmmirror.com/defaults/-/defaults-1.0.4.tgz", @@ -3051,6 +3058,12 @@ "node": ">=10" } }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmmirror.com/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT" + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3060,6 +3073,12 @@ "node": ">=0.4.0" } }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, "node_modules/detect-libc": { "version": "2.0.4", "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.0.4.tgz", @@ -7564,6 +7583,33 @@ } } }, + "node_modules/pinia-plugin-persistedstate": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-4.5.0.tgz", + "integrity": "sha512-QTkP1xJVyCdr2I2p3AKUZM84/e+IS+HktRxKGAIuDzkyaKKV48mQcYkJFVVDuvTxlI5j6X3oZObpqoVB8JnWpw==", + "license": "MIT", + "dependencies": { + "deep-pick-omit": "^1.2.1", + "defu": "^6.1.4", + "destr": "^2.0.5" + }, + "peerDependencies": { + "@nuxt/kit": ">=3.0.0", + "@pinia/nuxt": ">=0.10.0", + "pinia": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@pinia/nuxt": { + "optional": true + }, + "pinia": { + "optional": true + } + } + }, "node_modules/pinia/node_modules/@vue/devtools-api": { "version": "7.7.7", "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-7.7.7.tgz", diff --git a/src/static/app/package.json b/src/static/app/package.json index 8e710895..a462118a 100644 --- a/src/static/app/package.json +++ b/src/static/app/package.json @@ -29,6 +29,7 @@ "npm": "^10.5.0", "ol": "^10.2.1", "pinia": "^3.0.3", + "pinia-plugin-persistedstate": "^4.5.0", "qrcode": "^1.5.3", "qrcodejs": "^1.0.0", "simple-code-editor": "^2.0.9", diff --git a/src/static/app/src/components/configurationComponents/peer.vue b/src/static/app/src/components/configurationComponents/peer.vue index 9954f258..49b32ab0 100644 --- a/src/static/app/src/components/configurationComponents/peer.vue +++ b/src/static/app/src/components/configurationComponents/peer.vue @@ -41,6 +41,7 @@ export default {