diff --git a/src/features/onboarding/hooks/use-create-project.ts b/src/features/onboarding/hooks/use-create-project.ts index 021aec58..49fecf71 100644 --- a/src/features/onboarding/hooks/use-create-project.ts +++ b/src/features/onboarding/hooks/use-create-project.ts @@ -12,7 +12,7 @@ import type { OnboardingProjectData } from "@/features/onboarding/types"; type ProjectInput = { name: string; description: string; databaseIds: string[] }; export const useCreateProject = () => { - const { state, updateContext, next } = useOnboarding(); + const { state, updateContext } = useOnboarding(); return useMutation({ mutationFn: async ({ name, description, databaseIds }: ProjectInput) => { @@ -56,7 +56,6 @@ export const useCreateProject = () => { }, }); } - await next(); }, onError: (err: Error) => toast.error(err.message), }); diff --git a/src/features/onboarding/steps/step-project-create.tsx b/src/features/onboarding/steps/step-project-create.tsx index dc0ed29f..2752a05d 100644 --- a/src/features/onboarding/steps/step-project-create.tsx +++ b/src/features/onboarding/steps/step-project-create.tsx @@ -8,90 +8,119 @@ import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Button } from "@/components/ui/button"; import { useCreateProject } from "@/features/onboarding/hooks/use-create-project"; -import type { OnboardingDatabase, OnboardingProjectData } from "@/features/onboarding/types"; +import type { + OnboardingDatabase, + OnboardingProjectData, +} from "@/features/onboarding/types"; export const StepProjectCreate = () => { - const { state } = useOnboarding(); - const existingProject = state?.context.flowData.project as OnboardingProjectData | undefined; - const databases = (state?.context.flowData.databases ?? []) as OnboardingDatabase[]; - const isUpdateMode = !!existingProject; + const { state, next } = useOnboarding(); + const existingProject = state?.context.flowData.project as + | OnboardingProjectData + | undefined; + const databases = (state?.context.flowData.databases ?? + []) as OnboardingDatabase[]; + const isUpdateMode = !!existingProject; - const [name, setName] = useState(existingProject?.name ?? ""); - const [description, setDescription] = useState(existingProject?.description ?? ""); - const [databaseIds, setDatabaseIds] = useState(existingProject?.databaseIds ?? []); + const [name, setName] = useState(existingProject?.name ?? ""); + const [description, setDescription] = useState( + existingProject?.description ?? "", + ); + const [databaseIds, setDatabaseIds] = useState( + existingProject?.databaseIds ?? [], + ); - const mutation = useCreateProject(); + const mutation = useCreateProject(); - const toggleDb = (id: string) => - setDatabaseIds((prev) => (prev.includes(id) ? prev.filter((v) => v !== id) : [...prev, id])); + const toggleDb = (id: string) => { + const newDbIds = databaseIds.includes(id) + ? databaseIds.filter((v) => v !== id) + : [...databaseIds, id]; + setDatabaseIds(newDbIds); + mutation.mutate({ name: name || "My project", description, databaseIds: newDbIds }); + }; - return ( -
-
-

- {isUpdateMode ? "Update project" : "Create a project"} -

-

Optional — group databases under a project.

-
-
- - setName(e.target.value)} - placeholder="My project" - /> -
-
- -