"use client"; import { Dispatch, SetStateAction, useEffect } from "react"; import { useFormState, useFormStatus } from "react-dom"; import { updateTenantName } from "@/actions/users/tenants"; import { SaveIcon } from "@/components/icons"; import { useToast } from "@/components/ui"; import { CustomButton, CustomServerInput } from "@/components/ui/custom"; const SubmitButton = () => { const { pending } = useFormStatus(); return ( } > {pending ? <>Loading : Save} ); }; export const EditTenantForm = ({ tenantId, tenantName, setIsOpen, }: { tenantId: string; tenantName?: string; setIsOpen: Dispatch>; }) => { const [state, formAction] = useFormState(updateTenantName, null); const { toast } = useToast(); useEffect(() => { if (state?.success) { toast({ title: "Changed successfully", description: state.success, }); setIsOpen(false); } else if (state?.errors?.general) { toast({ variant: "destructive", title: "Oops! Something went wrong", description: state.errors.general, }); } }, [state, toast, setIsOpen]); return (
Current name: {tenantName}
{/* Hidden inputs for Server Action */}
setIsOpen(false)} > Cancel
); };