diff --git a/.changeset/deferred-search-and-search-page.md b/.changeset/deferred-search-and-search-page.md new file mode 100644 index 00000000..cb985c8d --- /dev/null +++ b/.changeset/deferred-search-and-search-page.md @@ -0,0 +1,5 @@ +--- +"@luzzle/web": patch +--- + +Show a usable search form on unfiltered `/search` visits, sharing controls with the navbar dialog. Keep filtered pages results-only, preserve dialog drafts between openings, and skip querying and hydrating pieces until filters are provided. diff --git a/apps/web/src/lib/components/layout/simple/SearchDialog.svelte b/apps/web/src/lib/components/layout/simple/SearchDialog.svelte index 38c616a2..9f7072c8 100644 --- a/apps/web/src/lib/components/layout/simple/SearchDialog.svelte +++ b/apps/web/src/lib/components/layout/simple/SearchDialog.svelte @@ -1,62 +1,25 @@ + +
+ + diff --git a/apps/web/src/lib/components/layout/simple/SearchForm.test.ts b/apps/web/src/lib/components/layout/simple/SearchForm.test.ts new file mode 100644 index 00000000..ae42e51b --- /dev/null +++ b/apps/web/src/lib/components/layout/simple/SearchForm.test.ts @@ -0,0 +1,136 @@ +import { render } from 'svelte/server' +import { beforeEach, expect, test, vi } from 'vitest' +import SearchForm from './SearchForm.svelte' + +const { page, mount, resolve } = vi.hoisted(() => { + const mount = { prefix: '' } + return { + mount, + page: { + url: new URL('https://garden.test/search'), + data: {} as Partial