From d7b7cce5bea0bddb81b16cfc3c66e883593a5339 Mon Sep 17 00:00:00 2001 From: Andrew Chou <andrewchou@fastmail.com> Date: Thu, 16 Jan 2025 12:05:44 -0500 Subject: [PATCH] use useCreateProject() --- src/renderer/src/hooks/mutations/projects.ts | 27 ------------------- .../routes/Onboarding/CreateProjectScreen.tsx | 15 ++++++----- 2 files changed, 9 insertions(+), 33 deletions(-) delete mode 100644 src/renderer/src/hooks/mutations/projects.ts diff --git a/src/renderer/src/hooks/mutations/projects.ts b/src/renderer/src/hooks/mutations/projects.ts deleted file mode 100644 index 67ff88c..0000000 --- a/src/renderer/src/hooks/mutations/projects.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { getProjectsQueryKey, useClientApi } from '@comapeo/core-react' -import { useMutation, useQueryClient } from '@tanstack/react-query' - -export const CREATE_PROJECT_KEY = 'create_project' - -export function useCreateProject() { - const api = useClientApi() - const queryClient = useQueryClient() - - return useMutation({ - mutationKey: [CREATE_PROJECT_KEY], - mutationFn: (opts?: Parameters<typeof api.createProject>[0]) => { - if (opts) { - return api.createProject(opts) - } else { - // Have to avoid passing `undefined` explicitly - // See https://github.com/digidem/comapeo-mobile/issues/392 - return api.createProject() - } - }, - onSuccess: () => { - queryClient.invalidateQueries({ - queryKey: getProjectsQueryKey(), - }) - }, - }) -} diff --git a/src/renderer/src/routes/Onboarding/CreateProjectScreen.tsx b/src/renderer/src/routes/Onboarding/CreateProjectScreen.tsx index 069c231..294ee8a 100644 --- a/src/renderer/src/routes/Onboarding/CreateProjectScreen.tsx +++ b/src/renderer/src/routes/Onboarding/CreateProjectScreen.tsx @@ -1,4 +1,5 @@ import { useState, type ChangeEvent } from 'react' +import { useCreateProject } from '@comapeo/core-react' import ExpandMoreIcon from '@mui/icons-material/ExpandMore' import { Accordion, @@ -22,7 +23,6 @@ import { Text } from '../../components/Text' import { PROJECT_NAME_MAX_LENGTH_GRAPHEMES } from '../../constants' import { useActiveProjectIdStoreActions } from '../../contexts/ActiveProjectIdProvider' import { useSelectProjectConfigFile } from '../../hooks/mutations/file-system' -import { useCreateProject } from '../../hooks/mutations/projects' import ProjectImage from '../../images/add_square.png' export const m = defineMessages({ @@ -177,9 +177,10 @@ function CreateProjectScreenComponent() { ) } - const backPressHandler = createProjectMutation.isPending - ? undefined - : () => navigate({ to: '/Onboarding/CreateJoinProjectScreen' }) + const backPressHandler = + createProjectMutation.status === 'pending' + ? undefined + : () => navigate({ to: '/Onboarding/CreateJoinProjectScreen' }) const topMenu = ( <OnboardingTopMenu currentStep={3} onBackPress={backPressHandler} /> @@ -288,10 +289,12 @@ function CreateProjectScreenComponent() { maxWidth: 350, padding: '12px 20px', }} - disabled={createProjectMutation.isPending} + disabled={createProjectMutation.status === 'pending'} > {formatMessage( - createProjectMutation.isPending ? m.saving : m.createProject, + createProjectMutation.status === 'pending' + ? m.saving + : m.createProject, )} </Button> </OnboardingScreenLayout>