diff --git a/apps/zitare/apps/web/src/lib/components/QuoteCard.svelte b/apps/zitare/apps/web/src/lib/components/QuoteCard.svelte index c5dc24c97..c26d5bce8 100644 --- a/apps/zitare/apps/web/src/lib/components/QuoteCard.svelte +++ b/apps/zitare/apps/web/src/lib/components/QuoteCard.svelte @@ -4,6 +4,7 @@ import { favoritesStore } from '$lib/stores/favorites.svelte'; import { authStore } from '$lib/stores/auth.svelte'; import { ZitareEvents } from '@manacore/shared-utils/analytics'; + import { toast } from '$lib/stores/toast.svelte'; import { _ } from 'svelte-i18n'; interface Props { @@ -49,11 +50,15 @@ async function toggleFavorite() { if (!authStore.isAuthenticated) return; const wasFavorite = isFavorite; - await favoritesStore.toggle(quote.id); - if (wasFavorite) { - ZitareEvents.quoteUnfavorited(); - } else { - ZitareEvents.quoteFavorited(quote.category); + try { + await favoritesStore.toggle(quote.id); + if (wasFavorite) { + ZitareEvents.quoteUnfavorited(); + } else { + ZitareEvents.quoteFavorited(quote.category); + } + } catch { + toast.error($_('common.error')); } } diff --git a/apps/zitare/apps/web/src/routes/(app)/lists/+page.svelte b/apps/zitare/apps/web/src/routes/(app)/lists/+page.svelte index 4127b8a8a..4e71f1245 100644 --- a/apps/zitare/apps/web/src/routes/(app)/lists/+page.svelte +++ b/apps/zitare/apps/web/src/routes/(app)/lists/+page.svelte @@ -3,6 +3,7 @@ import { goto } from '$app/navigation'; import { _ } from 'svelte-i18n'; import { authStore } from '$lib/stores/auth.svelte'; + import { toast } from '$lib/stores/toast.svelte'; import { ZitareEvents } from '@manacore/shared-utils/analytics'; interface QuoteList { @@ -51,9 +52,12 @@ if (response.ok) { const data = await response.json(); lists = data.lists || []; + } else { + toast.error($_('common.error')); } } catch (error) { console.error('Failed to fetch lists:', error); + toast.error($_('common.error')); } finally { loading = false; } @@ -86,9 +90,12 @@ showCreateModal = false; newListName = ''; newListDescription = ''; + } else { + toast.error($_('common.error')); } } catch (error) { console.error('Failed to create list:', error); + toast.error($_('common.error')); } finally { saving = false; } @@ -110,9 +117,12 @@ if (response.ok) { lists = lists.filter((l) => l.id !== listId); ZitareEvents.listDeleted(); + } else { + toast.error($_('lists.detail.toast.deleteError')); } } catch (error) { console.error('Failed to delete list:', error); + toast.error($_('lists.detail.toast.deleteError')); } finally { deletingId = null; }