Files
immich/web/src/routes/(user)/search/+page.ts
T
Jason Rasmussen d8631a00bb refactor(web) open api client (#7103)
* refactor: person api

* refactor: shared link and others
2024-02-14 08:09:49 -05:00

35 lines
1.0 KiB
TypeScript

import { authenticate } from '$lib/utils/auth';
import { search, type AssetResponseDto, type SearchResponseDto } from '@immich/sdk';
import type { PageLoad } from './$types';
import { QueryParameter } from '$lib/constants';
export const load = (async (data) => {
await authenticate();
const url = new URL(data.url.href);
const term =
url.searchParams.get(QueryParameter.SEARCH_TERM) || url.searchParams.get(QueryParameter.QUERY) || undefined;
let results: SearchResponseDto | null = null;
if (term) {
const response = await search({ ...data.url.searchParams });
let items: AssetResponseDto[] = (data as unknown as { results: SearchResponseDto }).results?.assets.items;
if (items) {
items.push(...response.assets.items);
} else {
items = response.assets.items;
}
const assets = { ...response.assets, items };
results = {
assets,
albums: response.albums,
};
}
return {
term,
results,
meta: {
title: 'Search',
},
};
}) satisfies PageLoad;