gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/components/entity-table/hooks/use-entity-query.ts · v0.3.0-alpha7
Source
1 578311c Mrdn 2y ago import { z } from "zod";
2 578311c Mrdn 2y ago
3 578311c Mrdn 2y ago const UseEntityQueryPropsSchema = z.object({
4 578311c Mrdn 2y ago page: z.number().gte(1),
5 6b38fe9 Mrdn 2y ago size: z.number().gte(1).lte(100),
6 6b38fe9 Mrdn 2y ago search: z.string().optional()
7 578311c Mrdn 2y ago })
8 578311c Mrdn 2y ago
9 cfe497c Mrdn 2y ago export interface SortableEntitySortQueryProps {
10 cfe497c Mrdn 2y ago sortBy: string
11 cfe497c Mrdn 2y ago desc: boolean
12 cfe497c Mrdn 2y ago }
13 cfe497c Mrdn 2y ago
14 cfe497c Mrdn 2y ago export type UseEntityQueryProps = z.infer<typeof UseEntityQueryPropsSchema & SortableEntitySortQueryProps>
15 cfe497c Mrdn 2y ago
16 cfe497c Mrdn 2y ago export type QueryKey = [string, number, number, string]
17 cfe497c Mrdn 2y ago export type SortableQueryKey = [string, number, number, string, string, boolean]
18 cfe497c Mrdn 2y ago
19 cfe497c Mrdn 2y ago export interface QueryKeyType<QT> {
20 cfe497c Mrdn 2y ago queryKey: QT
21 cfe497c Mrdn 2y ago }
22 578311c Mrdn 2y ago
23 cfe497c Mrdn 2y ago export type EntityQueryKeyType = QueryKeyType<SortableQueryKey | QueryKey>
24 578311c Mrdn 2y ago
25 578311c Mrdn 2y ago interface FetchEntityResult<T> {
26 578311c Mrdn 2y ago pageCount: number
27 578311c Mrdn 2y ago entity: T[]
28 578311c Mrdn 2y ago }
29 578311c Mrdn 2y ago
30 578311c Mrdn 2y ago export type FetchEntityReturn<T> = Promise<FetchEntityResult<T>>