File size: 883 Bytes
5da4770
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { createMutationHook, createQueryHook } from "@/hooks/use-query";
import { threadKeys } from "./keys";
import { getProject, getPublicProjects, Project, updateProject } from "./utils";

export const useProjectQuery = (projectId: string | undefined) =>
  createQueryHook(
    threadKeys.project(projectId || ""),
    () =>
      projectId
        ? getProject(projectId)
        : Promise.reject("No project ID"),
    {
      enabled: !!projectId,
      retry: 1,
    }
  )();

export const useUpdateProjectMutation = () =>
  createMutationHook(
    ({
      projectId,
      data,
    }: {
      projectId: string;
      data: Partial<Project>;
    }) => updateProject(projectId, data)
  )();

export const usePublicProjectsQuery = () =>
    createQueryHook(
      threadKeys.publicProjects(),
      () =>
        getPublicProjects(),
      {
        retry: 1,
      }
    )();