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>