diff --git a/src/components/Selection.svelte b/src/components/Selection.svelte index 5be2df2a..6b0d49d5 100644 --- a/src/components/Selection.svelte +++ b/src/components/Selection.svelte @@ -127,6 +127,7 @@
0 && !is_valid(item)} type="text" bind:value={item} diff --git a/src/routes/admin/+page.server.ts b/src/routes/admin/+page.server.ts index 0ac3fa0b..cfc35666 100644 --- a/src/routes/admin/+page.server.ts +++ b/src/routes/admin/+page.server.ts @@ -1,5 +1,5 @@ import { redirect } from '@sveltejs/kit' -import { has_session } from './sessions.js' +import { has_session } from './sessions' export const prerender = false diff --git a/src/routes/app.css b/src/routes/app.css index ca1b4e55..a53a0fcc 100644 --- a/src/routes/app.css +++ b/src/routes/app.css @@ -227,6 +227,7 @@ button:focus-visible { padding: 0.2rem 0.8rem; color: var(--button-text-color); background-color: var(--button-color); + white-space: nowrap; } a.button { diff --git a/src/routes/category-properties/+page.svelte b/src/routes/category-properties/+page.svelte index 6426576a..906bce14 100644 --- a/src/routes/category-properties/+page.svelte +++ b/src/routes/category-properties/+page.svelte @@ -3,7 +3,7 @@ import SearchFilter from '$components/SearchFilter.svelte' import SuggestionForm from '$components/SuggestionForm.svelte' import { pluralize } from '$lib/client/utils' - import { get_property_url } from '$lib/commons/property.url.js' + import { get_property_url } from '$lib/commons/property.url' let { data } = $props() diff --git a/src/routes/category-search/+page.svelte b/src/routes/category-search/+page.svelte index 0a3ea18f..2cd1235c 100644 --- a/src/routes/category-search/+page.svelte +++ b/src/routes/category-search/+page.svelte @@ -5,6 +5,7 @@ import MetaData from '$components/MetaData.svelte' import { SEARCH_SEPARATOR } from '$lib/commons/search.config' import { navigating } from '$app/state' + import { browser } from '$app/environment' let { data } = $props() @@ -15,6 +16,26 @@ satisfied_properties.length > 0 || unsatisfied_properties.length > 0, ) + $effect(() => { + preload_search_config() + }) + + function preload_search_config() { + if (!browser) return + + const saved_search_txt = window.sessionStorage.getItem('category-search') + if (!saved_search_txt) return + + try { + const saved_search = JSON.parse(saved_search_txt) as { + satisfied_properties: string[] + unsatisfied_properties: string[] + } + satisfied_properties = saved_search.satisfied_properties + unsatisfied_properties = saved_search.unsatisfied_properties + } catch (_) {} + } + function request_search_results() { if (!is_valid_search) return @@ -31,9 +52,22 @@ if (satisfied_query) url.searchParams.set('satisfied', satisfied_query) if (unsatisfied_query) url.searchParams.set('unsatisfied', unsatisfied_query) + if (browser) { + window.sessionStorage.setItem( + 'category-search', + JSON.stringify({ satisfied_properties, unsatisfied_properties }), + ) + } + goto(url) } + function reset() { + if (browser) window.sessionStorage.removeItem('category-search') + satisfied_properties = [] + unsatisfied_properties = [] + } + const sample_search_url = `/category-search/results?satisfied=finitely_complete${SEARCH_SEPARATOR}pointed&unsatisfied=complete` let is_searching = $derived(navigating.to?.route.id === '/category-search/results') @@ -68,15 +102,25 @@ item_label="Unsatisfied property" /> - + + + + + + + diff --git a/src/routes/category-search/results/+page.svelte b/src/routes/category-search/results/+page.svelte index a2fdb7a1..8158d624 100644 --- a/src/routes/category-search/results/+page.svelte +++ b/src/routes/category-search/results/+page.svelte @@ -1,7 +1,7 @@