import { useRouter } from "next/navigation"; import { useConfirm } from "@frontend-opensource/use-react-hooks"; import { type FieldValues, type UseFormReturn } from "react-hook-form"; import { Button } from "@common/components"; import { Form } from "./form"; type FormWrapperProps = { form: UseFormReturn; children: React.ReactNode; isModifyMode?: boolean; handleSave: (data: T) => Promise; handleDelete?: () => Promise; }; function FormWrapper({ form, children, isModifyMode, handleSave, handleDelete, }: FormWrapperProps) { const router = useRouter(); const { confirm } = useConfirm(); const onSubmit = async (data: T) => { const confirmMessage = isModifyMode ? "수정하시겠습니까?" : "저장하시겠습니까?"; if (await confirm(confirmMessage)) { await handleSave(data); } }; const onDelete = async () => { if (await confirm("삭제하시겠습니까?")) { await handleDelete?.(); } }; return (
{children}
{isModifyMode && handleDelete && ( )}
); } export { FormWrapper };