Release 0.8.1
This commit is contained in:
1 parent
07f2c4607b
commit
abc31d920f
17 files changed
+908
-134
No files matched your search
@@ -1,9 +1,34 @@
|
||||
import type { PageServerLoad } from './$types';
|
||||
import { requireUser } from '#lib/server/auth.js';
|
||||
import { searchWorkspace } from '#lib/server/global-search.js';
|
||||
import { listGlobalSearchFacets, searchWorkspace } from '#lib/server/global-search.js';
|
||||
import type { GlobalSearchFilters } from '#lib/server/global-search.js';
|
||||
|
||||
export const load: PageServerLoad = ({ locals, url }) => {
|
||||
requireUser(locals.user);
|
||||
const query = (url.searchParams.get('q') ?? '').trim().slice(0, 200);
|
||||
return { query, results: searchWorkspace(query) };
|
||||
const rawType = url.searchParams.get('type');
|
||||
const filters: GlobalSearchFilters & {
|
||||
type: NonNullable<GlobalSearchFilters['type']>;
|
||||
status: string;
|
||||
topicId: string;
|
||||
formatId: string;
|
||||
} = {
|
||||
type: rawType === 'pieces' || rawType === 'shows' ? rawType : ('all' as const),
|
||||
status: (url.searchParams.get('status') ?? '').slice(0, 30),
|
||||
topicId: (url.searchParams.get('topic') ?? '').slice(0, 100),
|
||||
formatId: (url.searchParams.get('format') ?? '').slice(0, 100)
|
||||
};
|
||||
const results = searchWorkspace(query, filters);
|
||||
const countResults =
|
||||
filters.type === 'all' ? results : searchWorkspace(query, { ...filters, type: 'all' });
|
||||
return {
|
||||
query,
|
||||
filters,
|
||||
facets: listGlobalSearchFacets(),
|
||||
results,
|
||||
counts: {
|
||||
pieces: countResults.pieces.length,
|
||||
shows: countResults.shows.length
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in new issue
Block a user