diff --git a/src/lib/components/common/DropdownOptions.svelte b/src/lib/components/common/DropdownOptions.svelte index f2640672c4..91f8607538 100644 --- a/src/lib/components/common/DropdownOptions.svelte +++ b/src/lib/components/common/DropdownOptions.svelte @@ -15,6 +15,8 @@ { value: 'top', label: $i18n.t('Top') } ]; + export let onChange: (value: string) => void = () => {}; + let open = false; @@ -44,6 +46,7 @@ on:click={() => { value = item.value; open = false; + onChange(value); }} > {item.label} diff --git a/src/lib/components/notes/Notes.svelte b/src/lib/components/notes/Notes.svelte index 50c3dc1556..04f7e4a261 100644 --- a/src/lib/components/notes/Notes.svelte +++ b/src/lib/components/notes/Notes.svelte @@ -161,10 +161,9 @@ const init = async () => { reset(); await getItemsPage(); - loaded = true; }; - $: if (query !== undefined && sortKey !== undefined && viewOption !== undefined) { + $: if (loaded && query !== undefined && sortKey !== undefined && viewOption !== undefined) { init(); } @@ -251,6 +250,11 @@ }; onMount(async () => { + viewOption = localStorage?.noteViewOption ?? null; + displayOption = localStorage?.noteDisplayOption ?? null; + + loaded = true; + const dropzoneElement = document.getElementById('notes-container'); dropzoneElement?.addEventListener('dragover', onDragOver); dropzoneElement?.addEventListener('drop', onDrop); @@ -374,6 +378,13 @@ { value: 'created', label: $i18n.t('Created by you') }, { value: 'shared', label: $i18n.t('Shared with you') } ]} + onChange={(value) => { + if (value) { + localStorage.noteViewOption = value; + } else { + delete localStorage.noteViewOption; + } + }} /> @@ -386,6 +397,13 @@ { value: null, label: $i18n.t('List') }, { value: 'grid', label: $i18n.t('Grid') } ]} + onChange={() => { + if (displayOption) { + localStorage.noteDisplayOption = displayOption; + } else { + delete localStorage.noteDisplayOption; + } + }} /> @@ -394,16 +412,16 @@ {@const notes = groupNotes(items)}