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 @@