Skip to content

Commit 2925800

Browse files
Merge pull request #348 from preactjs/restore-filters
2 parents d526ec8 + 5f98ab3 commit 2925800

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

src/view/store/filter.ts

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,19 @@ export interface RawFilter {
1010
export function createFilterStore(
1111
onSubmit: (event: "update-filter", filters: RawFilterState) => void,
1212
) {
13-
const filters = valoo<RawFilter[]>([]);
14-
const filterFragment = valoo(true);
15-
const filterDom = valoo(true);
16-
const filterHoc = valoo(true);
17-
const filterRoot = valoo(true);
13+
const defaults = {
14+
fragment: true,
15+
dom: true,
16+
hoc: true,
17+
root: true,
18+
regex: [] as RawFilter[],
19+
};
20+
21+
const filters = valoo<RawFilter[]>(defaults.regex);
22+
const filterFragment = valoo(defaults.fragment);
23+
const filterDom = valoo(defaults.dom);
24+
const filterHoc = valoo(defaults.hoc);
25+
const filterRoot = valoo(defaults.root);
1826

1927
const submit = () => {
2028
const s: RawFilterState = {
@@ -23,6 +31,7 @@ export function createFilterStore(
2331
fragment: filterFragment.$,
2432
dom: filterDom.$,
2533
hoc: filterHoc.$,
34+
root: filterRoot.$,
2635
},
2736
};
2837

@@ -39,6 +48,17 @@ export function createFilterStore(
3948
filterHoc.$ = !!state.type.hoc;
4049
filterRoot.$ = !!state.type.root;
4150
filters.$ = state.regex;
51+
52+
// Refetch component tree if filters are not the default ones
53+
if (
54+
defaults.fragment !== filterFragment.$ ||
55+
defaults.dom !== filterDom.$ ||
56+
defaults.hoc !== filterHoc.$ ||
57+
defaults.root !== filterRoot.$ ||
58+
filters.$.some(f => f.enabled)
59+
) {
60+
submit();
61+
}
4262
} catch (err) {
4363
// eslint-disable-next-line no-console
4464
console.log(err);

0 commit comments

Comments
 (0)