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.
-
+