import { Group, Box, Button, TextInput, Stack, Textarea } from "@mantine/core"; import React, { useState } from "react"; import { useCreateGroupMutation } from "@/features/group/queries/group-query.ts"; import { useForm } from "@mantine/form"; import * as z from "zod"; import { useNavigate } from "react-router-dom"; import { MultiUserSelect } from "@/features/group/components/multi-user-select.tsx"; import { useTranslation } from "react-i18next"; import { zodResolver } from 'mantine-form-zod-resolver'; const formSchema = z.object({ name: z.string().trim().min(2).max(100), description: z.string().max(500), }); type FormValues = z.infer; export function CreateGroupForm() { const { t } = useTranslation(); const createGroupMutation = useCreateGroupMutation(); const [userIds, setUserIds] = useState([]); const navigate = useNavigate(); const form = useForm({ validate: zodResolver(formSchema), initialValues: { name: "", description: "", }, }); const handleMultiSelectChange = (value: string[]) => { setUserIds(value); }; const handleSubmit = async (data: { name?: string; description?: string; }) => { const groupData = { name: data.name, description: data.description, userIds: userIds, }; const createdGroup = await createGroupMutation.mutateAsync(groupData); navigate(`/settings/groups/${createdGroup.id}`); }; return ( <>
handleSubmit(values))}>