1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import {
createSearchParamsCache,
parseAsArrayOf,
parseAsInteger,
parseAsString,
parseAsStringEnum,
} from 'nuqs/server';
import { z } from 'zod';
import { getFiltersStateParser, getSortingStateParser } from '@/lib/parsers';
import { approvalTemplates } from '@/db/schema/knox/approvals';
export const SearchParamsApprovalTemplateCache = createSearchParamsCache({
flags: parseAsArrayOf(z.enum(['advancedTable', 'floatingBar'])).withDefault([]),
page: parseAsInteger.withDefault(1),
perPage: parseAsInteger.withDefault(10),
sort: getSortingStateParser<typeof approvalTemplates>().withDefault([
{ id: 'updatedAt', desc: true },
]),
filters: getFiltersStateParser().withDefault([]),
joinOperator: parseAsStringEnum(['and', 'or']).withDefault('and'),
search: parseAsString.withDefault(''),
});
export type GetApprovalTemplateSchema = Awaited<
ReturnType<typeof SearchParamsApprovalTemplateCache.parse>
>;
|