gitscope
← marzneshin / master / dashboard/src/modules/users/api/queries/user.query.ts
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/users/api/queries/user.query.ts · TypeScript
Blame Raw
 1import { queryOptions, useQuery } from "@tanstack/react-query";
 2import { fetch } from "@marzneshin/common/utils";
 3import type { UserType } from "@marzneshin/modules/users";
 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    });
18};
19
20export const useUserQuery = ({ username }: { username: string }) => {
21    return useQuery(userQueryOptions({ username }));
22};