From 128a980d7a360f0048077c8f2c7eb59cffcf88a5 Mon Sep 17 00:00:00 2001 From: Kumiszhan Dybyspayeva Date: Thu, 17 Aug 2023 17:16:14 +0100 Subject: [PATCH] Apply saved query --- frontend/components/Filter.svelte | 11 +++++++++-- frontend/components/QueryList.svelte | 23 +++++++++-------------- frontend/store.ts | 13 ++++++++++++- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/frontend/components/Filter.svelte b/frontend/components/Filter.svelte index c16d6d2..d7967cd 100644 --- a/frontend/components/Filter.svelte +++ b/frontend/components/Filter.svelte @@ -3,12 +3,18 @@ import QueryModal from './QueryModal.svelte'; import { parseDSL } from '../dsl'; import { debounce } from '../util'; - import { parsedFilter, stringFilter, filterActive, isAuthenticated } from '../store'; + import { parsedFilter, stringFilter, filterActive, isAuthenticated, activeFilterId } from '../store'; let filter: string = ''; let filterValid: boolean = false; let saveModal: QueryModal; + stringFilter.subscribe((value) => { + filter = value; + applyFilter(); + }); + + function filterChangeHandler(): () => void { return debounce(() => { // TODO: validate queries as user types them. @@ -29,10 +35,11 @@ function applyFilter() { console.log(`Going to parse ${filter}`); - stringFilter.set(filter); if (filter == '') { filterActive.set(false); parsedFilter.set(undefined); + stringFilter.set(''); + activeFilterId.set(undefined); return; } diff --git a/frontend/components/QueryList.svelte b/frontend/components/QueryList.svelte index d9f4050..43b58da 100644 --- a/frontend/components/QueryList.svelte +++ b/frontend/components/QueryList.svelte @@ -1,7 +1,8 @@ @@ -46,7 +41,7 @@ {#if query.description}{query.description}{/if}

- {#if query.active}active{:else}inactive{/if} + {#if query.id == $activeFilterId}active{:else}inactive{/if}

@@ -54,7 +49,7 @@ - + {/each} diff --git a/frontend/store.ts b/frontend/store.ts index 39b5f5c..df031f2 100644 --- a/frontend/store.ts +++ b/frontend/store.ts @@ -15,13 +15,24 @@ export const maxNumberOfMessages = writable(50); export const userQueries: Writable = writable([]); -export const stringFilter: Writable = writable(''); +const storedStringFilter = localStorage.getItem('stringFilter'); +export const stringFilter: Writable = writable(storedStringFilter || ''); +stringFilter.subscribe((value) => { + localStorage.setItem('stringFilter', value); +}); + export const filterActive: Writable = writable(false); export const env: Writable = writable(ENV_DEV); export const parsedFilter: Writable = writable(undefined); export const currentEvent: Writable = writable(undefined); +const storedActiveFilterId = localStorage.getItem('activeFilterId'); +export const activeFilterId: Writable = writable(storedActiveFilterId || undefined); +activeFilterId.subscribe((value) => { + localStorage.setItem('activeFilterId', value); +}); + const storedToken = localStorage.getItem('token'); export const token = writable(storedToken); token.subscribe((value) => {