Remember selected tags
This commit is contained in:
parent
f74a60a66b
commit
519f8a77d9
|
@ -15,9 +15,35 @@ export class TagsStore implements Readable<TagFilter[]> {
|
||||||
selectedTags = derived(this.selected, ($selected) => Array.from($selected));
|
selectedTags = derived(this.selected, ($selected) => Array.from($selected));
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
this.initSelections();
|
||||||
this.refreshTags();
|
this.refreshTags();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private initSelections = () => {
|
||||||
|
if (!localStorage.noteTagsSelected) return;
|
||||||
|
|
||||||
|
let storedSelections: unknown;
|
||||||
|
|
||||||
|
try {
|
||||||
|
storedSelections = JSON.parse(localStorage.noteTagsSelected);
|
||||||
|
} catch (err) {
|
||||||
|
localStorage.removeItem('noteTagsSelected');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const selectionsAsArray = storedSelections;
|
||||||
|
if (!Array.isArray(selectionsAsArray)) return;
|
||||||
|
|
||||||
|
const seletionsAsInts = selectionsAsArray
|
||||||
|
.map((tagId) => parseInt(tagId))
|
||||||
|
.filter((tagId) => !isNaN(tagId));
|
||||||
|
|
||||||
|
this.selected.update((selected) => {
|
||||||
|
seletionsAsInts.forEach((tagId) => selected.add(tagId));
|
||||||
|
return selected;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
subscribe = this.tags.subscribe;
|
subscribe = this.tags.subscribe;
|
||||||
|
|
||||||
refreshTags = async () => {
|
refreshTags = async () => {
|
||||||
|
@ -84,6 +110,10 @@ export class TagsStore implements Readable<TagFilter[]> {
|
||||||
this.selected.update((selected) => {
|
this.selected.update((selected) => {
|
||||||
const method = selected.has(tagId) ? 'delete' : 'add';
|
const method = selected.has(tagId) ? 'delete' : 'add';
|
||||||
selected[method](tagId);
|
selected[method](tagId);
|
||||||
|
|
||||||
|
const selectionsAsString = JSON.stringify(Array.from(selected));
|
||||||
|
localStorage.noteTagsSelected = selectionsAsString;
|
||||||
|
|
||||||
return selected;
|
return selected;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue