gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/users/services/users.query.ts · v0.3.0-alpha2
Source
1 3b7feef Mrdn 2y ago import { useQuery } from "@tanstack/react-query";
2 3b7feef Mrdn 2y ago import { fetch } from "@marzneshin/utils";
3 3b7feef Mrdn 2y ago import { UserType } from "../types";
4 3b7feef Mrdn 2y ago
5 3b7feef Mrdn 2y ago interface UserResponse extends UserType {
6 3b7feef Mrdn 2y ago service_ids: number[]
7 3b7feef Mrdn 2y ago services: any[]
8 3b7feef Mrdn 2y ago }
9 3b7feef Mrdn 2y ago
10 3b7feef Mrdn 2y ago export async function fetchUsers(): Promise<UserType[]> {
11 3b7feef Mrdn 2y ago return fetch('/users').then((result) => {
12 3b7feef Mrdn 2y ago const users: UserType[] = result.items.map((fetchedUser: UserResponse) => {
13 3b7feef Mrdn 2y ago const user: UserType = fetchedUser;
14 3b7feef Mrdn 2y ago user.services = fetchedUser.service_ids
15 3b7feef Mrdn 2y ago return user
16 3b7feef Mrdn 2y ago })
17 3b7feef Mrdn 2y ago return users;
18 3b7feef Mrdn 2y ago });
19 3b7feef Mrdn 2y ago }
20 3b7feef Mrdn 2y ago
21 3b7feef Mrdn 2y ago export const UsersQueryFetchKey = "users";
22 3b7feef Mrdn 2y ago
23 3b7feef Mrdn 2y ago export const useUsersQuery = () => {
24 3b7feef Mrdn 2y ago return useQuery({
25 3b7feef Mrdn 2y ago queryKey: [UsersQueryFetchKey],
26 3b7feef Mrdn 2y ago queryFn: fetchUsers,
27 3b7feef Mrdn 2y ago initialData: []
28 3b7feef Mrdn 2y ago })
29 3b7feef Mrdn 2y ago }