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