diff --git a/src/lib/components/workspace/Models/DefaultFiltersSelector.svelte b/src/lib/components/workspace/Models/DefaultFiltersSelector.svelte index d03928a56c..8828a17ffa 100644 --- a/src/lib/components/workspace/Models/DefaultFiltersSelector.svelte +++ b/src/lib/components/workspace/Models/DefaultFiltersSelector.svelte @@ -1,5 +1,5 @@
@@ -30,21 +17,27 @@
{#if filters.length > 0}
- {#each Object.keys(_filters) as filter, filterIdx} + {#each filters as filter} + {@const isSelected = selectedFilterIds.includes(filter.id)}
{ - _filters[filter].selected = e.detail === 'checked'; - selectedFilterIds = Object.keys(_filters).filter((t) => _filters[t].selected); + if (e.detail === 'checked') { + if (!selectedFilterIds.includes(filter.id)) { + selectedFilterIds = [...selectedFilterIds, filter.id]; + } + } else { + selectedFilterIds = selectedFilterIds.filter((id) => id !== filter.id); + } }} />
- - {_filters[filter].name} + + {filter.name}
diff --git a/src/lib/components/workspace/Models/FiltersSelector.svelte b/src/lib/components/workspace/Models/FiltersSelector.svelte index c5207e61b7..7432107daf 100644 --- a/src/lib/components/workspace/Models/FiltersSelector.svelte +++ b/src/lib/components/workspace/Models/FiltersSelector.svelte @@ -1,5 +1,5 @@ {#if filters.length > 0} @@ -28,31 +15,33 @@
{$i18n.t('Filters')}
- +
- {#each Object.keys(_filters) as filter, filterIdx} + {#each filters as filter} + {@const isSelected = filter.is_global || selectedFilterIds.includes(filter.id)}
{ - if (!_filters[filter].is_global) { - _filters[filter].selected = e.detail === 'checked'; - selectedFilterIds = Object.keys(_filters).filter((t) => _filters[t].selected); + if (filter.is_global) return; + + if (e.detail === 'checked') { + if (!selectedFilterIds.includes(filter.id)) { + selectedFilterIds = [...selectedFilterIds, filter.id]; + } + } else { + selectedFilterIds = selectedFilterIds.filter((id) => id !== filter.id); } }} />
- - {_filters[filter].name} + + {filter.name}