diff --git a/web/src/routes/+page.svelte b/web/src/routes/+page.svelte index 004869f..6c9afe4 100644 --- a/web/src/routes/+page.svelte +++ b/web/src/routes/+page.svelte @@ -219,26 +219,18 @@ }); } - async function applyAliasIfChanged(nextAlias: string) { - const currentAlias = parseAliasFilter(page.url.searchParams.get('aliases')); - if (nextAlias === currentAlias) return; - const q = new URLSearchParams(page.url.searchParams); - if (nextAlias === 'all') q.delete('aliases'); - else q.set('aliases', nextAlias); - const qs = q.toString(); - await goto(`${page.url.pathname}${qs ? `?${qs}` : ''}`, { - replaceState: true, - noScroll: true, - keepFocus: true - }); - // Для стабильности сразу перезагружаем данные по новому фильтру. - await load(); - } - async function handleAliasFilterChange(nextAlias: string) { - if (nextAlias === aliasFilter) return; aliasFilter = nextAlias; - await applyAliasIfChanged(nextAlias); + const q = new URLSearchParams(page.url.searchParams); + if (nextAlias === 'all') q.delete('aliases'); + else q.set('aliases', nextAlias); + const qs = q.toString(); + await goto(`${page.url.pathname}${qs ? `?${qs}` : ''}`, { + replaceState: true, + noScroll: true, + keepFocus: true + }); + await load(); } let queryKey = $derived(page.url.searchParams.toString()); @@ -252,12 +244,6 @@ async function handleAliasFilterChange(nextAlias: string) { void load(); }); - $effect(() => { - if (typeof window === 'undefined') return; - const nextAlias = aliasFilter; - void applyAliasIfChanged(nextAlias); - }); - let staleSeconds = $derived.by(() => lastSuccessAtMs == null ? null : Math.max(0, Math.floor((nowMs - lastSuccessAtMs) / 1000)) ); diff --git a/web/src/routes/users/+page.svelte b/web/src/routes/users/+page.svelte index 507b82c..a56d741 100644 --- a/web/src/routes/users/+page.svelte +++ b/web/src/routes/users/+page.svelte @@ -117,9 +117,8 @@ }); } - async function applyAliasIfChanged(nextAlias: string) { - const currentAlias = parseAliasFilter(page.url.searchParams.get('aliases')); - if (nextAlias === currentAlias) return; + async function handleAliasFilterChange(nextAlias: string) { + aliasFilter = nextAlias; const q = new URLSearchParams(page.url.searchParams); if (nextAlias === 'all') q.delete('aliases'); else q.set('aliases', nextAlias); @@ -129,17 +128,9 @@ noScroll: true, keepFocus: true }); - // В некоторых сценариях shallow-навигации page.url обновляется не сразу, - // поэтому дополнительно перезапрашиваем данные по текущему фильтру. await load(); } - async function handleAliasFilterChange(nextAlias: string) { - if (nextAlias === aliasFilter) return; - aliasFilter = nextAlias; - await applyAliasIfChanged(nextAlias); - } - let queryKey = $derived(page.url.searchParams.toString()); $effect(() => { queryKey; @@ -152,12 +143,6 @@ void load(); }); - $effect(() => { - if (typeof window === 'undefined') return; - const nextAlias = aliasFilter; - void applyAliasIfChanged(nextAlias); - }); - let staleSeconds = $derived.by(() => lastSuccessAtMs == null ? null : Math.max(0, Math.floor((nowMs - lastSuccessAtMs) / 1000)) );