gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/nodes/services/nodes.query.ts · v0.3.0-alpha5
Source
1 b15ff05 Mrdn 2y ago import { NodeType } from "@marzneshin/features/nodes";
2 b15ff05 Mrdn 2y ago import { useQuery } from "@tanstack/react-query";
3 b15ff05 Mrdn 2y ago import { fetch } from "@marzneshin/utils";
4 578311c Mrdn 2y ago import {
5 578311c Mrdn 2y ago EntityQueryKeyType,
6 578311c Mrdn 2y ago UseEntityQueryProps
7 578311c Mrdn 2y ago } from "@marzneshin/components";
8 b15ff05 Mrdn 2y ago
9 578311c Mrdn 2y ago export async function fetchNodes({ queryKey }: EntityQueryKeyType): Promise<{ entity: NodeType[], pageCount: number }> {
10 6b38fe9 Mrdn 2y ago return fetch(`/nodes?page=${queryKey[1]}&size=${queryKey[2]}&name=${queryKey[3]}`).then((result) => {
11 578311c Mrdn 2y ago return {
12 578311c Mrdn 2y ago entity: result.items,
13 578311c Mrdn 2y ago pageCount: result.pages,
14 578311c Mrdn 2y ago };
15 b15ff05 Mrdn 2y ago });
16 b15ff05 Mrdn 2y ago }
17 b15ff05 Mrdn 2y ago
18 b15ff05 Mrdn 2y ago export const NodesQueryFetchKey = "nodes";
19 b15ff05 Mrdn 2y ago
20 578311c Mrdn 2y ago
21 6b38fe9 Mrdn 2y ago export const useNodesQuery = ({ page, size, search }: UseEntityQueryProps) => {
22 b15ff05 Mrdn 2y ago return useQuery({
23 6b38fe9 Mrdn 2y ago queryKey: [NodesQueryFetchKey, page, size, search ? search : ""],
24 b15ff05 Mrdn 2y ago queryFn: fetchNodes,
25 578311c Mrdn 2y ago initialData: { entity: [], pageCount: 0 },
26 b15ff05 Mrdn 2y ago })
27 b15ff05 Mrdn 2y ago }