From 79ec261c268da8b32277057c1617e734345eb02f Mon Sep 17 00:00:00 2001 From: TZGyn Date: Sun, 7 Apr 2024 17:41:04 +0800 Subject: [PATCH] update qr settings page to use page action --- frontend/bun.lockb | Bin 177318 -> 208139 bytes frontend/package.json | 12 ++- .../lib/components/ui/form/form-button.svelte | 9 +- .../components/ui/form/form-checkbox.svelte | 25 ----- .../ui/form/form-description.svelte | 20 ++-- .../ui/form/form-element-field.svelte | 25 +++++ .../ui/form/form-field-errors.svelte | 26 +++++ .../lib/components/ui/form/form-field.svelte | 25 +++++ .../components/ui/form/form-fieldset.svelte | 30 ++++++ .../lib/components/ui/form/form-input.svelte | 27 ------ .../lib/components/ui/form/form-item.svelte | 12 --- .../lib/components/ui/form/form-label.svelte | 23 ++--- .../lib/components/ui/form/form-legend.svelte | 17 ++++ .../ui/form/form-native-select.svelte | 23 ----- .../ui/form/form-radio-group.svelte | 21 ---- .../ui/form/form-select-trigger.svelte | 17 ---- .../lib/components/ui/form/form-select.svelte | 19 ---- .../lib/components/ui/form/form-switch.svelte | 23 ----- .../components/ui/form/form-textarea.svelte | 31 ------ .../components/ui/form/form-validation.svelte | 13 --- frontend/src/lib/components/ui/form/index.ts | 90 ++++-------------- .../settings/qr/(components)/DemoQR.svelte | 3 + .../settings/qr/(components)/form.svelte | 56 +++++++++++ .../routes/(app)/settings/qr/+page.server.ts | 47 ++++++++- .../src/routes/(app)/settings/qr/+page.svelte | 76 +-------------- .../src/routes/(app)/settings/qr/schema.ts | 14 +++ frontend/src/routes/api/account/qr/+server.ts | 32 ------- 27 files changed, 298 insertions(+), 418 deletions(-) delete mode 100644 frontend/src/lib/components/ui/form/form-checkbox.svelte create mode 100644 frontend/src/lib/components/ui/form/form-element-field.svelte create mode 100644 frontend/src/lib/components/ui/form/form-field-errors.svelte create mode 100644 frontend/src/lib/components/ui/form/form-field.svelte create mode 100644 frontend/src/lib/components/ui/form/form-fieldset.svelte delete mode 100644 frontend/src/lib/components/ui/form/form-input.svelte delete mode 100644 frontend/src/lib/components/ui/form/form-item.svelte create mode 100644 frontend/src/lib/components/ui/form/form-legend.svelte delete mode 100644 frontend/src/lib/components/ui/form/form-native-select.svelte delete mode 100644 frontend/src/lib/components/ui/form/form-radio-group.svelte delete mode 100644 frontend/src/lib/components/ui/form/form-select-trigger.svelte delete mode 100644 frontend/src/lib/components/ui/form/form-select.svelte delete mode 100644 frontend/src/lib/components/ui/form/form-switch.svelte delete mode 100644 frontend/src/lib/components/ui/form/form-textarea.svelte delete mode 100644 frontend/src/lib/components/ui/form/form-validation.svelte create mode 100644 frontend/src/routes/(app)/settings/qr/(components)/form.svelte create mode 100644 frontend/src/routes/(app)/settings/qr/schema.ts delete mode 100644 frontend/src/routes/api/account/qr/+server.ts diff --git a/frontend/bun.lockb b/frontend/bun.lockb index f2996d849d89fd9cbcdaf088bd16de4e97bb0031..a777d8d7984eefd13e16f2d9a24e171cf8fa2ed5 100755 GIT binary patch delta 47454 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ℜ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%0D%m1i6D@5cSnxzQIv~RCPDrl_yL8)?#i^g9 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 diff --git a/frontend/package.json b/frontend/package.json index 1060e02..2d0e8ee 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,8 +14,8 @@ }, "devDependencies": { "@sveltejs/adapter-node": "^2.0.0", - "@sveltejs/kit": "^2.0.0", - "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@sveltejs/kit": "^2.5.5", + "@sveltejs/vite-plugin-svelte": "^3.0.2", "@types/qrcode": "^1.5.5", "autoprefixer": "^10.4.14", "bun-types": "^1.0.11", @@ -26,13 +26,13 @@ "prettier": "^3.1.0", "prettier-plugin-svelte": "^3.1.0", "prettier-plugin-tailwindcss": "^0.5.7", - "svelte": "^4.0.5", + "svelte": "^4.2.12", "svelte-adapter-bun": "^0.5.1", "svelte-check": "^3.4.3", "tailwindcss": "^3.3.2", "tslib": "^2.4.1", "typescript": "^5.0.0", - "vite": "^5.0.0" + "vite": "^5.2.8" }, "type": "module", "dependencies": { @@ -40,10 +40,11 @@ "@prgm/sveltekit-progress-bar": "^2.0.0", "@types/he": "^1.2.3", "apexcharts": "^3.44.0", - "bits-ui": "^0.19.7", + "bits-ui": "^0.21.2", "clsx": "^2.0.0", "cmdk-sv": "^0.0.13", "drizzle-orm": "latest", + "formsnap": "^1.0.0", "he": "^1.2.0", "lucide-svelte": "^0.356.0", "mode-watcher": "^0.1.2", @@ -54,6 +55,7 @@ "postgres": "^3.4.3", "qrcode": "^1.5.3", "svelte-sonner": "^0.3.10", + "sveltekit-superforms": "^2.12.2", "tailwind-merge": "^2.0.0", "tailwind-variants": "^0.1.18", "zod": "^3.22.4" diff --git a/frontend/src/lib/components/ui/form/form-button.svelte b/frontend/src/lib/components/ui/form/form-button.svelte index 6e20da3..087c839 100644 --- a/frontend/src/lib/components/ui/form/form-button.svelte +++ b/frontend/src/lib/components/ui/form/form-button.svelte @@ -1,9 +1,10 @@ - + diff --git a/frontend/src/lib/components/ui/form/form-checkbox.svelte b/frontend/src/lib/components/ui/form/form-checkbox.svelte deleted file mode 100644 index a1cddf1..0000000 --- a/frontend/src/lib/components/ui/form/form-checkbox.svelte +++ /dev/null @@ -1,25 +0,0 @@ - - - { - onCheckedChange?.(v) - setValue(v) - }} - {...$$restProps} - on:click - on:keydown /> - diff --git a/frontend/src/lib/components/ui/form/form-description.svelte b/frontend/src/lib/components/ui/form/form-description.svelte index 14683c9..7d36254 100644 --- a/frontend/src/lib/components/ui/form/form-description.svelte +++ b/frontend/src/lib/components/ui/form/form-description.svelte @@ -1,15 +1,17 @@ - + class={cn("text-sm text-muted-foreground", className)} + {...$$restProps} + let:descriptionAttrs +> + diff --git a/frontend/src/lib/components/ui/form/form-element-field.svelte b/frontend/src/lib/components/ui/form/form-element-field.svelte new file mode 100644 index 0000000..2de747e --- /dev/null +++ b/frontend/src/lib/components/ui/form/form-element-field.svelte @@ -0,0 +1,25 @@ + + + + + +
+ +
+
diff --git a/frontend/src/lib/components/ui/form/form-field-errors.svelte b/frontend/src/lib/components/ui/form/form-field-errors.svelte new file mode 100644 index 0000000..9395326 --- /dev/null +++ b/frontend/src/lib/components/ui/form/form-field-errors.svelte @@ -0,0 +1,26 @@ + + + + + {#each errors as error} +
{error}
+ {/each} +
+
diff --git a/frontend/src/lib/components/ui/form/form-field.svelte b/frontend/src/lib/components/ui/form/form-field.svelte new file mode 100644 index 0000000..6e958a3 --- /dev/null +++ b/frontend/src/lib/components/ui/form/form-field.svelte @@ -0,0 +1,25 @@ + + + + + +
+ +
+
diff --git a/frontend/src/lib/components/ui/form/form-fieldset.svelte b/frontend/src/lib/components/ui/form/form-fieldset.svelte new file mode 100644 index 0000000..81e8f1b --- /dev/null +++ b/frontend/src/lib/components/ui/form/form-fieldset.svelte @@ -0,0 +1,30 @@ + + + + + + + diff --git a/frontend/src/lib/components/ui/form/form-input.svelte b/frontend/src/lib/components/ui/form/form-input.svelte deleted file mode 100644 index 33ca078..0000000 --- a/frontend/src/lib/components/ui/form/form-input.svelte +++ /dev/null @@ -1,27 +0,0 @@ - - - diff --git a/frontend/src/lib/components/ui/form/form-item.svelte b/frontend/src/lib/components/ui/form/form-item.svelte deleted file mode 100644 index 586e40c..0000000 --- a/frontend/src/lib/components/ui/form/form-item.svelte +++ /dev/null @@ -1,12 +0,0 @@ - - -
- -
diff --git a/frontend/src/lib/components/ui/form/form-label.svelte b/frontend/src/lib/components/ui/form/form-label.svelte index e9757c2..fcd1028 100644 --- a/frontend/src/lib/components/ui/form/form-label.svelte +++ b/frontend/src/lib/components/ui/form/form-label.svelte @@ -1,20 +1,17 @@ -