import { useMutation } from "@tanstack/react-query"; import { Database, Plus } from "lucide-react"; import { useId } from "react"; import { toast } from "sonner"; import { createRepositoryMutation } from "~/client/api-client/@tanstack/react-query.gen"; import { CreateRepositoryForm, formSchema, type RepositoryFormValues, } from "~/client/modules/repositories/components/create-repository-form"; import { Button } from "~/client/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "~/client/components/ui/card"; import { parseError } from "~/client/lib/errors"; import { Alert, AlertDescription } from "~/client/components/ui/alert"; import { useNavigate } from "@tanstack/react-router"; export function CreateRepositoryPage() { const navigate = useNavigate(); const formId = useId(); const createRepository = useMutation({ ...createRepositoryMutation(), onSuccess: (data) => { toast.success("Repository created successfully"); void navigate({ to: `/repositories/${data.repository.shortId}` }); }, }); const handleSubmit = (values: RepositoryFormValues) => { const { name, compressionMode, ...config } = formSchema.parse(values); createRepository.mutate({ body: { config, name, compressionMode, }, }); }; return (