fixes list loading

This commit is contained in:
Christian Beutel
2025-07-04 10:41:17 +02:00
parent 819aea801e
commit 7c478f6f3f
2 changed files with 7 additions and 8 deletions

View File

@@ -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<Response> = fetch, user?: AuthRecord) { export async function lists_search_filter(filter: ListFilter, page: number = 1, perPage: number = 30, f: (url: RequestInfo | URL, config?: RequestInit) => Promise<Response> = fetch, user?: AuthRecord) {
user ??= get(currentUser) user ??= get(currentUser)
const filterText = buildSearchFilterText(user, filter) 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) throw new APIError(r.status, response.message, response.detail)
} }
const result: { page: number, totalPages: number, hits: Hits<ListSearchResult> } = await r.json(); const fetchedLists: { page: number, totalPages: number, hits: Hits<ListSearchResult> } = await r.json();
const resultLists: List[] = await searchResultToLists(fetchedLists.hits)
const resultLists: List[] = await searchResultToLists(result.hits) const result = page > 1 ? [...lists, ...resultLists] : resultLists
return { items: resultLists, ...result };
lists = result;
return { items: result, ...fetchedLists };
} }
export async function lists_show(id: string, handle?: string, f: (url: RequestInfo | URL, config?: RequestInit) => Promise<Response> = fetch) { export async function lists_show(id: string, handle?: string, f: (url: RequestInfo | URL, config?: RequestInit) => Promise<Response> = fetch) {
@@ -253,7 +254,7 @@ function buildSearchFilterText(user: AuthRecord, filter: ListFilter): string {
} }
export async function searchResultToLists(hits: Hits<ListSearchResult>): Promise<List[]> { export async function searchResultToLists(hits: Hits<ListSearchResult>): Promise<List[]> {
const lists: List[] = [] const lists: List[] = []
for (const h of hits) { for (const h of hits) {
const l: List & RecordModel = { const l: List & RecordModel = {
collectionId: "lists", collectionId: "lists",

View File

@@ -16,7 +16,6 @@
import ListShareModal from "$lib/components/list/list_share_modal.svelte"; import ListShareModal from "$lib/components/list/list_share_modal.svelte";
import MapWithElevationMaplibre from "$lib/components/trail/map_with_elevation_maplibre.svelte"; import MapWithElevationMaplibre from "$lib/components/trail/map_with_elevation_maplibre.svelte";
import TrailInfoPanel from "$lib/components/trail/trail_info_panel.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 { List, type ListFilter } from "$lib/models/list";
import type { Trail } from "$lib/models/trail"; import type { Trail } from "$lib/models/trail";
import { import {
@@ -55,7 +54,6 @@
let map: M.Map | undefined = $state(); let map: M.Map | undefined = $state();
let mapWithElevation: MapWithElevationMaplibre | undefined = $state(); let mapWithElevation: MapWithElevationMaplibre | undefined = $state();
let markers: M.Marker[] = $state([]); let markers: M.Marker[] = $state([]);
let showMap: boolean = true;
let selectedList: List | null = $state( let selectedList: List | null = $state(
page.params.handle && page.params.id ? data.lists.items[0] : null, page.params.handle && page.params.id ? data.lists.items[0] : null,