"use client"; import { Card, CardContent } from "@/components/ui/card"; import { FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useZodForm } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { Form } from "@/components/ui/form"; import { Button } from "@/components/ui/button"; import { useRouter } from "next/navigation"; import { useMutation } from "@tanstack/react-query"; import { TooltipProvider } from "@/components/ui/tooltip"; import { DatabaseSchema, DatabaseType } from "@/features/database/database-form.schema"; import { updateDatabaseAction } from "@/features/database/database-form.action"; import { toast } from "sonner"; export type DatabaseFormProps = { defaultValues?: DatabaseType; databaseId?: string; }; export const DatabaseForm = (props: DatabaseFormProps) => { const { defaultValues, databaseId } = props; const isCreate = !Boolean(defaultValues); const form = useZodForm({ schema: DatabaseSchema, defaultValues: { ...defaultValues }, }); const router = useRouter(); const mutation = useMutation({ mutationFn: async (values: DatabaseType) => { if (!databaseId) { throw new Error("Database ID is required"); } const database = await updateDatabaseAction({ id: databaseId, data: values }); if (!database) { toast.error("Failed to update database"); return; } if (database.serverError) { toast.error(database.serverError); return; } toast.success(`Database settings successfully updated!`); router.back(); }, }); return (
{ await mutation.mutateAsync(values); }} > ( Name Your database project name setup in agent )} /> ( Database type Your database project name setup in agent )} /> ( Description Add a short description about this database )} />
); };