From 3da3e90aff2816ecb223049287f6e1db75637928 Mon Sep 17 00:00:00 2001 From: Robert Goniszewski Date: Tue, 3 Sep 2024 20:59:59 +0200 Subject: [PATCH] feat(bookmarks): improve bookmark deletion and settings management Signed-off-by: Robert Goniszewski --- src/lib/database/repositories/Bookmark.repository.ts | 3 ++- src/routes/+layout.server.ts | 3 +-- src/routes/+page.svelte | 2 +- src/routes/settings/+page.server.ts | 6 +----- src/routes/settings/+page.svelte | 5 +++-- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/lib/database/repositories/Bookmark.repository.ts b/src/lib/database/repositories/Bookmark.repository.ts index 97296f2..da46d81 100644 --- a/src/lib/database/repositories/Bookmark.repository.ts +++ b/src/lib/database/repositories/Bookmark.repository.ts @@ -3,7 +3,7 @@ import { serializeBookmark } from '$lib/utils/serialize-dbo-entity'; import { and, asc, count, desc, eq, inArray, like, or } from 'drizzle-orm'; import { db } from '../db'; -import { bookmarkSchema, bookmarksToTagsSchema, fileSchema, tagSchema } from '../schema'; +import { bookmarkSchema, bookmarksToTagsSchema, tagSchema } from '../schema'; import { mapRelationsToWithStatements } from './common'; import type { Bookmark } from '$lib/types/Bookmark.type'; @@ -145,6 +145,7 @@ export const deleteBookmark = async (id: number, ownerId: number): Promise await db .delete(bookmarkSchema) .where(and(eq(bookmarkSchema.id, id), eq(bookmarkSchema.ownerId, ownerId))); + await db.delete(bookmarksToTagsSchema).where(eq(bookmarksToTagsSchema.bookmarkId, id)); }; export const fetchBookmarkTags = async (id: number, ownerId: number): Promise<{ tags: Tag[] }> => { diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts index 7d8e3f4..580d743 100644 --- a/src/routes/+layout.server.ts +++ b/src/routes/+layout.server.ts @@ -1,8 +1,7 @@ import type { LayoutServerLoad } from './$types'; import { db } from '$lib/database/db'; import { - getBookmarksByUserId, - getBookmarksCountForUser + getBookmarksByUserId, getBookmarksCountForUser } from '$lib/database/repositories/Bookmark.repository'; import { fetchUserCategoryAndTags, getUserCount } from '$lib/database/repositories/User.repository'; import { searchIndexKeys } from '$lib/utils/search'; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index bf918fa..60287cc 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -75,7 +75,7 @@ {#if $page.data.user?.id} -
+
= { theme: settings.get('theme') as UserSettings['theme'], uiAnimations: settings.get('uiAnimations') === 'on', llm: { @@ -48,8 +48,6 @@ export const actions = { } }; - console.log('Received mappedSettings:', JSON.stringify(mappedSettings, null, 2)); - const updatedSettings = await updateUserSettings(owner, mappedSettings) .then(({ settings }) => settings) .catch((err) => { @@ -57,8 +55,6 @@ export const actions = { return null; }); - console.log('Updated settings:', JSON.stringify(updatedSettings, null, 2)); - if (!updatedSettings) { return { success: false, diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte index ac667fa..ca081fa 100644 --- a/src/routes/settings/+page.svelte +++ b/src/routes/settings/+page.svelte @@ -52,6 +52,7 @@ use:enhance={() => { return async ({ update, result }) => { if (result.type === 'success' && result?.data?.updatedSettings) { + console.log('result.data.updatedSettings', result.data.updatedSettings); // @ts-ignore-next-line userSettingsStore.set(result.data.updatedSettings); // @ts-ignore-next-line @@ -87,7 +88,7 @@ type="checkbox" name="uiAnimations" class="checkbox-accent checkbox" - checked={$page.data.user.settings.uiAnimations} + checked={$userSettingsStore.uiAnimations} on:change={(e) => { // @ts-ignore $userSettingsStore.uiAnimations = e.target.checked; @@ -110,7 +111,7 @@ type="checkbox" name="llmEnabled" class="checkbox-accent checkbox" - checked={$page.data.user.settings.llm.enabled} + checked={$userSettingsStore.llm.enabled} on:change={(e) => { // @ts-ignore $userSettingsStore.llm.enabled = e.target.checked;