From 6d5d5283b70176c16a1b4d95d8785a35634e1050 Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 1 Apr 2026 11:52:47 +0200 Subject: [PATCH] fix(memoro/web): replace $user with authStore.user (Svelte 5 runes) Old $user store subscription references caused build failure in runes mode. Replaced with authStore.user across 6 files (tags, upload, record, memos, MemoPanel, Sidebar). Co-Authored-By: Claude Sonnet 4.6 --- .../apps/web/src/lib/components/Sidebar.svelte | 2 +- .../web/src/lib/components/memo/MemoPanel.svelte | 8 ++++---- .../web/src/routes/(protected)/memos/+page.svelte | 10 +++++----- .../web/src/routes/(protected)/record/+page.svelte | 6 +++--- .../web/src/routes/(protected)/tags/+page.svelte | 12 ++++++++---- .../web/src/routes/(protected)/upload/+page.svelte | 4 ++-- 6 files changed, 23 insertions(+), 19 deletions(-) diff --git a/apps/memoro/apps/web/src/lib/components/Sidebar.svelte b/apps/memoro/apps/web/src/lib/components/Sidebar.svelte index 8a54a816a..07c39aedf 100644 --- a/apps/memoro/apps/web/src/lib/components/Sidebar.svelte +++ b/apps/memoro/apps/web/src/lib/components/Sidebar.svelte @@ -528,7 +528,7 @@ {#if !isMinimized}
- {$user?.email || ''} + {authStore.user?.email || ''}
{/if} diff --git a/apps/memoro/apps/web/src/lib/components/memo/MemoPanel.svelte b/apps/memoro/apps/web/src/lib/components/memo/MemoPanel.svelte index bde37f458..1d3d4bf7a 100644 --- a/apps/memoro/apps/web/src/lib/components/memo/MemoPanel.svelte +++ b/apps/memoro/apps/web/src/lib/components/memo/MemoPanel.svelte @@ -145,11 +145,11 @@ }); async function loadTags() { - if (!$user) return; + if (!authStore.user) return; try { isLoadingTags = true; - const tags = await tagService.getTags($user.id); + const tags = await tagService.getTags(authStore.user.id); availableTags = tags; tagsStore.setTags(tags); } catch (err) { @@ -369,10 +369,10 @@ } async function handleCreateTag(name: string, color: string) { - if (!$user) return; + if (!authStore.user) return; try { - const newTag = await tagService.createTag($user.id, name, color); + const newTag = await tagService.createTag(authStore.user.id, name, color); availableTags = [...availableTags, newTag]; tagsStore.setTags(availableTags); } catch (err) { diff --git a/apps/memoro/apps/web/src/routes/(protected)/memos/+page.svelte b/apps/memoro/apps/web/src/routes/(protected)/memos/+page.svelte index 961b6d80c..814f85d96 100644 --- a/apps/memoro/apps/web/src/routes/(protected)/memos/+page.svelte +++ b/apps/memoro/apps/web/src/routes/(protected)/memos/+page.svelte @@ -146,13 +146,13 @@ // Load more memos for infinite scroll async function loadMoreMemos() { - if ($isLoadingMore || !$hasMoreMemos || !$user) return; + if ($isLoadingMore || !$hasMoreMemos || !authStore.user) return; isLoadingMore.set(true); try { const newOffset = $currentOffset + MEMOS_PER_PAGE; const { memos: newMemos, hasMore } = await memoService.getMemosForList( - $user.id, + authStore.user.id, MEMOS_PER_PAGE, newOffset ); @@ -174,7 +174,7 @@ currentOffset.set(0); try { - if (!$user) { + if (!authStore.user) { error = $t('memo.error_user_not_authenticated'); loading = false; return; @@ -182,8 +182,8 @@ // Load memos and tags in parallel using optimized list query const [memosResult, tagsData] = await Promise.all([ - memoService.getMemosForList($user.id, MEMOS_PER_PAGE, 0), - tagService.getTags($user.id), + memoService.getMemosForList(authStore.user.id, MEMOS_PER_PAGE, 0), + tagService.getTags(authStore.user.id), ]); memos.setMemos(memosResult.memos); diff --git a/apps/memoro/apps/web/src/routes/(protected)/record/+page.svelte b/apps/memoro/apps/web/src/routes/(protected)/record/+page.svelte index 560c4ce44..f0bb31254 100644 --- a/apps/memoro/apps/web/src/routes/(protected)/record/+page.svelte +++ b/apps/memoro/apps/web/src/routes/(protected)/record/+page.svelte @@ -17,7 +17,7 @@ } async function handleRecordingComplete(audioBlob: Blob) { - if (!$user) { + if (!authStore.user) { console.error('No user authenticated'); recording.setError($t('record.user_not_authenticated')); return; @@ -31,12 +31,12 @@ console.log('Uploading recording:', { blobSize: audioBlob.size, duration: audioDuration, - userId: $user.id, + userId: authStore.user.id, }); const result = await uploadAndProcessAudio({ audioBlob, - userId: $user.id, + userId: authStore.user.id, title: 'New Recording', duration: audioDuration, spaceId: null, diff --git a/apps/memoro/apps/web/src/routes/(protected)/tags/+page.svelte b/apps/memoro/apps/web/src/routes/(protected)/tags/+page.svelte index 7be416ca4..c7154fb5e 100644 --- a/apps/memoro/apps/web/src/routes/(protected)/tags/+page.svelte +++ b/apps/memoro/apps/web/src/routes/(protected)/tags/+page.svelte @@ -30,7 +30,7 @@ // Load tags and usage counts on mount onMount(async () => { - if (!$user) { + if (!authStore.user) { loadError = 'User not authenticated'; isLoadingTags = false; return; @@ -44,7 +44,7 @@ isLoadingTags = true; loadError = null; - const loadedTags = await tagService.getTags($user!.id); + const loadedTags = await tagService.getTags(authStore.user!.id); tags.setTags(loadedTags); // Load usage counts for all tags @@ -86,13 +86,17 @@ async function handleCreateTag(event: Event) { event.preventDefault(); - if (!$user || !newTagName.trim()) return; + if (!authStore.user || !newTagName.trim()) return; try { isCreatingTag = true; actionError = null; - const createdTag = await tagService.createTag($user.id, newTagName.trim(), newTagColor); + const createdTag = await tagService.createTag( + authStore.user.id, + newTagName.trim(), + newTagColor + ); // Optimistic UI update tags.addTag(createdTag); diff --git a/apps/memoro/apps/web/src/routes/(protected)/upload/+page.svelte b/apps/memoro/apps/web/src/routes/(protected)/upload/+page.svelte index a44ebf4c5..7dd930648 100644 --- a/apps/memoro/apps/web/src/routes/(protected)/upload/+page.svelte +++ b/apps/memoro/apps/web/src/routes/(protected)/upload/+page.svelte @@ -119,7 +119,7 @@ // Upload file async function handleUpload() { - if (!selectedFile || !$user) return; + if (!selectedFile || !authStore.user) return; try { uploading = true; @@ -135,7 +135,7 @@ // Upload and process const result = await uploadAndProcessAudio({ audioBlob: selectedFile, - userId: $user.id, + userId: authStore.user.id, title: title || 'Uploaded Recording', duration, blueprintId: selectedBlueprint,