From 23f71378d314318000f74c657eb00f53fc8eec2c Mon Sep 17 00:00:00 2001 From: Denozordec Date: Mon, 30 Mar 2026 20:09:05 +0700 Subject: [PATCH] Refactor alias handling in incident and live pages - Updated the `load` and `connectStream` functions to accept an optional `aliasOverride` parameter, allowing for more flexible alias filtering. - Enhanced the logic for determining the active alias based on URL parameters, ensuring accurate data retrieval and stream connections. - Improved consistency in alias management across both incident and live pages, streamlining user experience. --- web/src/routes/incidents/+page.svelte | 10 ++++++---- web/src/routes/live/+page.svelte | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/web/src/routes/incidents/+page.svelte b/web/src/routes/incidents/+page.svelte index 4c4728b..bce2d17 100644 --- a/web/src/routes/incidents/+page.svelte +++ b/web/src/routes/incidents/+page.svelte @@ -114,12 +114,13 @@ } } - async function load() { + async function load(aliasOverride?: string) { loading = true; err = null; try { + const activeAlias = aliasOverride ?? aliasFilter; const env = await fetchAggIncidents({ - aliases: aliasFilter === 'all' ? undefined : aliasFilter + aliases: activeAlias === 'all' ? undefined : activeAlias }); data = env.data ?? null; partial = !!env.partial; @@ -151,11 +152,12 @@ $effect(() => { queryKey; if (typeof window === 'undefined') return; - aliasFilter = parseAliasFilter(page.url.searchParams.get('aliases')); + const nextAlias = parseAliasFilter(page.url.searchParams.get('aliases')); + aliasFilter = nextAlias; refreshSeconds = parseRefresh(page.url.searchParams.get('refresh')); refreshInput = String(refreshSeconds); restartPolling(); - void load(); + void load(nextAlias); }); let staleSeconds = $derived.by(() => diff --git a/web/src/routes/live/+page.svelte b/web/src/routes/live/+page.svelte index 07a510f..c388364 100644 --- a/web/src/routes/live/+page.svelte +++ b/web/src/routes/live/+page.svelte @@ -151,11 +151,12 @@ }, 250); } - function connectStream() { + function connectStream(aliasOverride?: string) { closeStream(); clearReconnectTimer(); err = null; - const aliasesParam = aliasFilter === 'all' ? undefined : aliasFilter; + const activeAlias = aliasOverride ?? aliasFilter; + const aliasesParam = activeAlias === 'all' ? undefined : activeAlias; const url = liveEventsUrl({ aliases: aliasesParam }); const next = new EventSource(url); next.onopen = () => { @@ -214,8 +215,9 @@ $effect(() => { queryKey; if (typeof window === 'undefined') return; - aliasFilter = parseAliasFilter(page.url.searchParams.get('aliases')); - connectStream(); + const nextAlias = parseAliasFilter(page.url.searchParams.get('aliases')); + aliasFilter = nextAlias; + connectStream(nextAlias); }); let staleSeconds = $derived.by(() =>