From f09d48f7020c69e19676b1a7c427a837199b2cec Mon Sep 17 00:00:00 2001 From: ZXY101 Date: Tue, 3 Oct 2023 12:55:20 +0200 Subject: [PATCH] Clear progress on delete --- src/lib/components/Settings/CatalogSettings.svelte | 8 +++++++- src/lib/settings/volume-data.ts | 11 +++++++++++ src/routes/[manga]/+page.svelte | 7 ++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/lib/components/Settings/CatalogSettings.svelte b/src/lib/components/Settings/CatalogSettings.svelte index e5b82a6..ed5f957 100644 --- a/src/lib/components/Settings/CatalogSettings.svelte +++ b/src/lib/components/Settings/CatalogSettings.svelte @@ -3,9 +3,15 @@ import { db } from '$lib/catalog/db'; import { promptConfirmation } from '$lib/util'; import { goto } from '$app/navigation'; + import { clearVolumes } from '$lib/settings'; + + function onConfirm() { + clearVolumes(); + db.catalog.clear(); + } function onClear() { - promptConfirmation('Are you sure you want to clear your catalog?', () => db.catalog.clear()); + promptConfirmation('Are you sure you want to clear your catalog?', onConfirm); goto('/'); } diff --git a/src/lib/settings/volume-data.ts b/src/lib/settings/volume-data.ts index 11c9489..c017bb5 100644 --- a/src/lib/settings/volume-data.ts +++ b/src/lib/settings/volume-data.ts @@ -44,6 +44,17 @@ export function initializeVolume(volume: string) { }); } +export function deleteVolume(volume: string) { + volumes.update((prev) => { + delete prev[volume] + return prev + }) +} + +export function clearVolumes() { + volumes.set({}); +} + export function updateProgress(volume: string, progress: number, chars: number, completed = false) { volumes.update((prev) => { return { diff --git a/src/routes/[manga]/+page.svelte b/src/routes/[manga]/+page.svelte index 5af15d7..8e71653 100644 --- a/src/routes/[manga]/+page.svelte +++ b/src/routes/[manga]/+page.svelte @@ -7,7 +7,7 @@ import { promptConfirmation } from '$lib/util'; import { page } from '$app/stores'; import type { Volume } from '$lib/types'; - import { onMount } from 'svelte'; + import { deleteVolume } from '$lib/settings'; function sortManga(a: Volume, b: Volume) { if (a.volumeName < b.volumeName) { @@ -23,6 +23,11 @@ async function confirmDelete() { const title = manga?.[0].mokuroData.title_uuid; + manga?.forEach((vol) => { + const volId = vol.mokuroData.volume_uuid; + deleteVolume(volId); + }); + await db.catalog.delete(title); goto('/'); }