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