diff --git a/src/features/workspaces/components/create-workspace-form.tsx b/src/features/workspaces/components/create-workspace-form.tsx new file mode 100644 index 0000000..5df1112 --- /dev/null +++ b/src/features/workspaces/components/create-workspace-form.tsx @@ -0,0 +1,88 @@ +"use client"; + +import { z } from "zod"; +import { + Form, + FormControl, + FormField, + FormItem, + FormLabel, + FormMessage, +} from "@/components/ui/form"; +import { useForm } from "react-hook-form"; +import { Input } from "@/components/ui/input"; +import { Button } from "@/components/ui/button"; +import { createWorkspaceSchema } from "../schemas"; +import { Separator } from "@/components/ui/separator"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { useCreateWorkspace } from "../api/use-create-workspace"; +import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; + +interface CreateWorkspaceFormProps { + onCancel?: () => void; +} + +export const CreateWorkspaceForm = ({ onCancel }: CreateWorkspaceFormProps) => { + const { mutate, isPending } = useCreateWorkspace(); + + const form = useForm>({ + resolver: zodResolver(createWorkspaceSchema), + defaultValues: { + name: "", + }, + }); + + const onSubmit = (values: z.infer) => { + mutate({ json: values }); + }; + + return ( + + + + Create a new workspace + + +
+ +
+ +
+ +
+ ( + + Workspace Name + + + + + + )} + /> +
+ +
+ + +
+ + +
+ +
+ ); +};