import React, { useEffect, forwardRef, useImperativeHandle } from 'react'; import { DialogMode } from '../types'; interface DialogFormWrapperProps { /** * Form component to render */ FormComponent: React.ComponentType; /** * Dialog type (create, edit, view, delete) */ type: DialogMode; /** * Form data */ data?: any; /** * Whether the form is in a loading state */ loading?: boolean; /** * Error object or message */ error?: any; /** * Whether the form is read-only */ isReadOnly?: boolean; /** * Additional props to pass to the form */ formProps?: Record; /** * Submit handler */ onSubmit?: (data: any) => Promise | boolean; /** * Close handler */ onClose?: () => void; } /** * Simplified form wrapper for better integration */ const DialogFormWrapper = forwardRef(({ FormComponent, type, data, loading, error, isReadOnly, formProps = {}, onSubmit, onClose }, ref) => { const formRef = React.useRef(null); // Expose form methods through ref useImperativeHandle(ref, () => formRef.current, []); return ( ); }); DialogFormWrapper.displayName = 'DialogFormWrapper'; export default DialogFormWrapper;