diff --git a/plugins/view-resources/src/components/filter/FilterBar.svelte b/plugins/view-resources/src/components/filter/FilterBar.svelte index 9a3cdcd822..efa9a92c06 100644 --- a/plugins/view-resources/src/components/filter/FilterBar.svelte +++ b/plugins/view-resources/src/components/filter/FilterBar.svelte @@ -59,6 +59,13 @@ ) } + $: clear(_class) + + function clear (_class: Ref>) { + filters.map((p) => p.onRemove?.()) + filters = [] + } + function remove (i: number) { filters[i]?.onRemove?.() filters.splice(i, 1) diff --git a/plugins/view-resources/src/components/filter/FilterSection.svelte b/plugins/view-resources/src/components/filter/FilterSection.svelte index b11a1c2518..99dfc4d17e 100644 --- a/plugins/view-resources/src/components/filter/FilterSection.svelte +++ b/plugins/view-resources/src/components/filter/FilterSection.svelte @@ -22,6 +22,7 @@ import { getClient } from '@anticrm/presentation' import task from '@anticrm/task' import type { State } from '@anticrm/task' + import { onDestroy } from 'svelte' export let _class: Ref> export let filter: Filter @@ -57,6 +58,10 @@ filter = filter dispatch('change') } + + onDestroy(() => { + filter.onRemove?.() + })