gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/hosts/services/hosts.query.ts · v0.5.0
Source
1 3b7feef Mrdn 2y ago import { HostType } from "@marzneshin/features/hosts";
2 3b7feef Mrdn 2y ago import { useQuery } from "@tanstack/react-query";
3 3b7feef Mrdn 2y ago import { fetch } from "@marzneshin/utils";
4 4cebd65 Mardin 2y ago import {
5 4cebd65 Mardin 2y ago FetchEntityReturn,
6 4cebd65 Mardin 2y ago UseEntityQueryProps,
7 4cebd65 Mardin 2y ago EntitySidebarQueryKeyType
8 4cebd65 Mardin 2y ago } from "@marzneshin/features/entity-table/hooks";
9 3b7feef Mrdn 2y ago
10 4cebd65 Mardin 2y ago export async function fetchHosts({ queryKey }: EntitySidebarQueryKeyType): FetchEntityReturn<HostType> {
11 4cebd65 Mardin 2y ago return fetch(queryKey[1] !== undefined ? `/inbounds/${queryKey[1]}/hosts` : `/inbounds/hosts`, {
12 4cebd65 Mardin 2y ago query: {
13 4cebd65 Mardin 2y ago page: queryKey[3],
14 4cebd65 Mardin 2y ago size: queryKey[4],
15 4cebd65 Mardin 2y ago }
16 4cebd65 Mardin 2y ago }).then((result) => {
17 4cebd65 Mardin 2y ago return {
18 4cebd65 Mardin 2y ago entity: result.items,
19 4cebd65 Mardin 2y ago pageCount: result.pages
20 4cebd65 Mardin 2y ago };
21 4cebd65 Mardin 2y ago });
22 3b7feef Mrdn 2y ago }
23 3b7feef Mrdn 2y ago
24 3b7feef Mrdn 2y ago export const HostsQueryFetchKey = "hosts";
25 3b7feef Mrdn 2y ago
26 4cebd65 Mardin 2y ago export const useHostsQuery = ({
27 4cebd65 Mardin 2y ago inboundId, page, size, search = ""
28 4cebd65 Mardin 2y ago }: UseEntityQueryProps & { inboundId?: number }) => {
29 3b7feef Mrdn 2y ago return useQuery({
30 4cebd65 Mardin 2y ago queryKey: ["inbounds", inboundId, HostsQueryFetchKey, page, size, search],
31 3b7feef Mrdn 2y ago queryFn: fetchHosts,
32 4cebd65 Mardin 2y ago initialData: { entity: [], pageCount: 0 }
33 3b7feef Mrdn 2y ago })
34 3b7feef Mrdn 2y ago }