From 33617bad740ac19f794f50ef22e3898748b654a2 Mon Sep 17 00:00:00 2001 From: MultiMote Date: Thu, 31 Oct 2024 22:10:16 +0300 Subject: [PATCH 1/5] Show used space in saved labels menu, show error when quota exceeded --- src/lib/SavedLabelsMenu.svelte | 45 +++++++++++++++++++--------------- src/locale/en.ts | 1 + src/locale/ru.ts | 1 + src/utils/persistence.ts | 44 +++++++++++++++++++++------------ src/utils/toasts.ts | 3 ++- 5 files changed, 58 insertions(+), 36 deletions(-) diff --git a/src/lib/SavedLabelsMenu.svelte b/src/lib/SavedLabelsMenu.svelte index 888db69..06cdb02 100644 --- a/src/lib/SavedLabelsMenu.svelte +++ b/src/lib/SavedLabelsMenu.svelte @@ -16,6 +16,11 @@ let savedLabels: ExportedLabelTemplate[] = []; let selectedIndex: number = -1; let title: string = ""; + let usedSpace: number = 0; + + const calcUsedSpace = () => { + usedSpace = LocalStoragePersistence.usedSpace(); + } const onLabelSelected = (index: number) => { selectedIndex = index; @@ -38,8 +43,21 @@ savedLabels = result; title = ""; + calcUsedSpace(); }; + const saveLabels = (labels: ExportedLabelTemplate[]) => { + const {zodErrors, otherErrors} = LocalStoragePersistence.saveLabels(labels); + zodErrors.forEach((e) => Toasts.zodErrors(e, "Label save error")); + otherErrors.forEach((e) => Toasts.error(e)); + + if (zodErrors.length === 0 && otherErrors.length === 0) { + savedLabels = labels; + } + + calcUsedSpace(); + } + const onSaveReplaceClicked = () => { if (selectedIndex === -1) { return; @@ -55,26 +73,14 @@ const result = [...savedLabels]; result[selectedIndex] = label; - const errors = LocalStoragePersistence.saveLabels(result); - errors.forEach((e) => Toasts.zodErrors(e, "Label save error")); - - if (errors.length === 0) { - savedLabels = result; - } + saveLabels(result); }; const onSaveClicked = () => { const label = onRequestCurrentCanvas(); label.title = title; const result = [...savedLabels, label]; - console.log(result); - - const errors = LocalStoragePersistence.saveLabels(result); - errors.forEach((e) => Toasts.zodErrors(e, "Label save error")); - - if (errors.length === 0) { - savedLabels = result; - } + saveLabels(result); }; const onLoadClicked = () => { @@ -114,12 +120,9 @@ } }; - const reload = () => { - savedLabels = LocalStoragePersistence.loadLabels(); - }; - onMount(() => { - reload(); + savedLabels = LocalStoragePersistence.loadLabels(); + calcUsedSpace(); }); @@ -128,7 +131,9 @@