diff --git a/apps/backend/pb_migrations/1707253263_updated_users.js b/apps/backend/pb_migrations/1707253263_updated_users.js new file mode 100644 index 0000000..feced8f --- /dev/null +++ b/apps/backend/pb_migrations/1707253263_updated_users.js @@ -0,0 +1,50 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("_pb_users_auth_") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "rncq13xn", + "name": "appearanceMode", + "type": "select", + "required": false, + "presentable": false, + "unique": false, + "options": { + "maxSelect": 1, + "values": [ + "light", + "dark", + "system" + ] + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("_pb_users_auth_") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "rncq13xn", + "name": "appearance_mode", + "type": "select", + "required": false, + "presentable": false, + "unique": false, + "options": { + "maxSelect": 1, + "values": [ + "light", + "dark", + "system" + ] + } + })) + + return dao.saveCollection(collection) +}) diff --git a/apps/web/src/routes/(dashboard)/settings/appearance/+page.server.ts b/apps/web/src/routes/(dashboard)/settings/appearance/+page.server.ts index 053a244..3401cd6 100644 --- a/apps/web/src/routes/(dashboard)/settings/appearance/+page.server.ts +++ b/apps/web/src/routes/(dashboard)/settings/appearance/+page.server.ts @@ -10,15 +10,16 @@ export const load: PageServerLoad = async () => { }; export const actions: Actions = { - default: async (event) => { - const form = await superValidate(event, appearanceFormSchema); + default: async ({ request, locals }: { request: Request; locals: App.Locals }) => { + const form = await superValidate(request, appearanceFormSchema); + console.log('form: ', form); if (!form.valid) { return fail(400, { form }); } - return { - form - }; + await locals.pocketBase + .collection('users') + .update(locals.id, { appearanceMode: form.data.theme }); } }; diff --git a/apps/web/src/routes/(dashboard)/settings/appearance/+page.svelte b/apps/web/src/routes/(dashboard)/settings/appearance/+page.svelte index 39e7231..bf51e55 100644 --- a/apps/web/src/routes/(dashboard)/settings/appearance/+page.svelte +++ b/apps/web/src/routes/(dashboard)/settings/appearance/+page.svelte @@ -4,6 +4,7 @@ import AppearanceForm from './appearance-form.svelte'; export let data: PageData; + export let { form, user } = data;
@@ -14,5 +15,5 @@

- + diff --git a/apps/web/src/routes/(dashboard)/settings/appearance/appearance-form.svelte b/apps/web/src/routes/(dashboard)/settings/appearance/appearance-form.svelte index fb46a2c..e7d8c5b 100644 --- a/apps/web/src/routes/(dashboard)/settings/appearance/appearance-form.svelte +++ b/apps/web/src/routes/(dashboard)/settings/appearance/appearance-form.svelte @@ -15,7 +15,9 @@ import * as Form from '$lib/components/ui/form'; import Label from '$lib/components/ui/label/label.svelte'; import { dev } from '$app/environment'; + import type { PageData } from '../$types'; export let data: SuperValidated; + export let user: PageData['user']; Theme Select the theme for the dashboard. - +