|
1 | 1 | <script lang="ts"> |
2 | 2 | import { onDestroy, onMount, setContext } from 'svelte'; |
3 | 3 | import { SvelteSet } from 'svelte/reactivity'; |
4 | | - import { |
5 | | - get, |
6 | | - type Unsubscriber, |
7 | | - type Writable, |
8 | | - writable, |
9 | | - } from 'svelte/store'; |
| 4 | + import { get, type Unsubscriber, type Writable } from 'svelte/store'; |
10 | 5 | import { fade } from 'svelte/transition'; |
11 | 6 | import LinearProgress from '@smui/linear-progress'; |
12 | 7 | import Snackbar, { Label } from '@smui/snackbar'; |
|
95 | 90 | // Filter manager |
96 | 91 | const filterManager = new FilterManager(filterSet, nodeStoreMap); |
97 | 92 |
|
98 | | - // Store for whether filter is active. |
99 | | - const filterActive = writable(false); |
| 93 | + // Whether the filter is active. |
| 94 | + let filterActive = $state(false); |
100 | 95 |
|
101 | 96 | // Clock to age recently visited bookmarks |
102 | 97 | const clock = createClock(); |
|
105 | 100 | setContext('builtInFolderInfo', builtInFolderInfo); |
106 | 101 | setContext('nodeStoreMap', nodeStoreMap); |
107 | 102 | setContext('lastVisitTimeMap', lastVisitTimeMap); |
108 | | - setContext('filterActive', filterActive); |
| 103 | + setContext('filterActive', () => filterActive); |
109 | 104 | setContext('filterSet', filterSet); |
110 | 105 | setContext('clock', clock); |
111 | 106 |
|
|
186 | 181 | const nodeStore = nodeStoreMap.get(nodeId)!; |
187 | 182 | const node: Treetop.FolderNode = get(nodeStore); |
188 | 183 |
|
189 | | - const activeFilterSet = get(filterActive) ? filterSet : undefined; |
| 184 | + const activeFilterSet = filterActive ? filterSet : undefined; |
190 | 185 |
|
191 | 186 | const promises: Promise<chrome.tabs.Tab>[] = []; |
192 | 187 |
|
|
504 | 499 | function applyFilter(filter: string) { |
505 | 500 | // Clear any previous filtering |
506 | 501 | filterManager.clearFilter(); |
507 | | - filterActive.set(false); |
| 502 | + filterActive = false; |
508 | 503 |
|
509 | 504 | // Set the current filter if the string is not empty |
510 | 505 | const value = filter.trim(); |
511 | 506 | if (value && value.length > 0) { |
512 | 507 | filterManager.setFilter(value); |
513 | | - filterActive.set(true); |
| 508 | + filterActive = true; |
514 | 509 | } |
515 | 510 | } |
516 | 511 |
|
|
590 | 585 | new DeleteMenuItem( |
591 | 586 | builtInFolderInfo, |
592 | 587 | nodeStoreMap, |
593 | | - filterActive, |
| 588 | + () => filterActive, |
594 | 589 | deleteBookmark, |
595 | 590 | ), |
596 | 591 | ); |
|
0 commit comments