gitscope
← marzneshin / v0.4.1 / dashboard/src/features/admins/services/admins.query.ts
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/admins/services/admins.query.ts · TypeScript
Blame Raw
 1import { useQuery } from "@tanstack/react-query";
 2import { fetch } from "@marzneshin/utils";
 3import { AdminType } from "@marzneshin/features/admins";
 4import {
 5    FetchEntityReturn,
 6    UseEntityQueryProps,
 7    EntityQueryKeyType
 8} from "@marzneshin/features/entity-table";
 9
10export async function fetchAdmins({ queryKey }: EntityQueryKeyType): FetchEntityReturn<AdminType> {
11    return fetch(`/admins`, {
12        query: {
13            page: queryKey[1],
14            size: queryKey[2],
15            username: queryKey[3],
16        }
17    }).then((result) => {
18        return {
19            entity: result.items,
20            pageCount: result.pages
21        };
22    });
23}
24
25export const AdminsQueryFetchKey = "users";
26
27export const useAdminsQuery = ({
28    page, size, search = ""
29}: UseEntityQueryProps) => {
30    return useQuery({
31        queryKey: [AdminsQueryFetchKey, page, size, search],
32        queryFn: fetchAdmins,
33        initialData: { entity: [], pageCount: 0 }
34    })
35}