diff --git a/web/src/lib/stores/list_store.ts b/web/src/lib/stores/list_store.ts index 4767ee53..b8699251 100644 --- a/web/src/lib/stores/list_store.ts +++ b/web/src/lib/stores/list_store.ts @@ -43,7 +43,7 @@ export async function lists_index(filter?: ListFilter, page: number = 1, perPage } -export async function lists_search_filter(filter: ListFilter, page: number = 1, perPage: number = 5, f: (url: RequestInfo | URL, config?: RequestInit) => Promise = fetch, user?: AuthRecord) { +export async function lists_search_filter(filter: ListFilter, page: number = 1, perPage: number = 30, f: (url: RequestInfo | URL, config?: RequestInit) => Promise = fetch, user?: AuthRecord) { user ??= get(currentUser) const filterText = buildSearchFilterText(user, filter) @@ -65,14 +65,15 @@ export async function lists_search_filter(filter: ListFilter, page: number = 1, throw new APIError(r.status, response.message, response.detail) } - const result: { page: number, totalPages: number, hits: Hits } = await r.json(); + const fetchedLists: { page: number, totalPages: number, hits: Hits } = await r.json(); + const resultLists: List[] = await searchResultToLists(fetchedLists.hits) - const resultLists: List[] = await searchResultToLists(result.hits) - - return { items: resultLists, ...result }; + const result = page > 1 ? [...lists, ...resultLists] : resultLists + lists = result; + return { items: result, ...fetchedLists }; } export async function lists_show(id: string, handle?: string, f: (url: RequestInfo | URL, config?: RequestInit) => Promise = fetch) { @@ -253,7 +254,7 @@ function buildSearchFilterText(user: AuthRecord, filter: ListFilter): string { } export async function searchResultToLists(hits: Hits): Promise { - const lists: List[] = [] + const lists: List[] = [] for (const h of hits) { const l: List & RecordModel = { collectionId: "lists", diff --git a/web/src/routes/lists/[[handle]]/[[id]]/+page.svelte b/web/src/routes/lists/[[handle]]/[[id]]/+page.svelte index 7b209e7a..016901db 100644 --- a/web/src/routes/lists/[[handle]]/[[id]]/+page.svelte +++ b/web/src/routes/lists/[[handle]]/[[id]]/+page.svelte @@ -16,7 +16,6 @@ import ListShareModal from "$lib/components/list/list_share_modal.svelte"; import MapWithElevationMaplibre from "$lib/components/trail/map_with_elevation_maplibre.svelte"; import TrailInfoPanel from "$lib/components/trail/trail_info_panel.svelte"; - import TrailList from "$lib/components/trail/trail_list.svelte"; import { List, type ListFilter } from "$lib/models/list"; import type { Trail } from "$lib/models/trail"; import { @@ -55,7 +54,6 @@ let map: M.Map | undefined = $state(); let mapWithElevation: MapWithElevationMaplibre | undefined = $state(); let markers: M.Marker[] = $state([]); - let showMap: boolean = true; let selectedList: List | null = $state( page.params.handle && page.params.id ? data.lists.items[0] : null,