gitscope
← marzneshin / v0.5.2 / dashboard/src/features/users/services/user.query.ts
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/users/services/user.query.ts · TypeScript
Blame Raw
 1import { queryOptions, useQuery } from "@tanstack/react-query";
 2import { fetch } from "@marzneshin/utils";
 3import type { UserType } from "../types";
 4
 5export async function fetchUser({
 6    queryKey,
 7}: { queryKey: [string, string] }): Promise<UserType> {
 8    return fetch(`/users/${queryKey[1]}`);
 9}
10
11export const UserQueryFetchKey = "users";
12
13export const userQueryOptions = ({ username }: { username: string }) => {
14    return queryOptions({
15        queryKey: [UserQueryFetchKey, username],
16        queryFn: fetchUser,
17        initialData: null,
18    });
19};
20
21export const useUserQuery = ({ username }: { username: string }) => {
22    return useQuery({
23        queryKey: [UserQueryFetchKey, username],
24        queryFn: fetchUser,
25        initialData: null,
26    });
27};