import { Button } from './Button'; import { Toolbar } from '@/components/ra-forms'; import { Breakpoint, Dialog, DialogContent } from '@mui/material'; import { EditBase, UseUpdateMutateParams, useNotify, useRecordContext } from 'ra-core'; import { EditButton, EditProps, SaveButton } from 'ra-ui-materialui'; import React, { Children, PropsWithChildren, useCallback, useState } from 'react'; import { FieldValues, useFormContext } from 'react-hook-form'; type ResponsiveButtonProps = { label?: string; onClick: () => void; }; function ResponsiveButton(props: ResponsiveButtonProps): JSX.Element { const handleClick = useCallback( (event: any) => { (event as Event).preventDefault(); (event as Event).stopPropagation(); props?.onClick?.(); }, [props] ); // @ts-ignore - I need to allow the label prop to be a ReactNode return ; } type CloseDialogFunction = () => void; type SubmitFunction = (values: FieldValues, closeDialog: CloseDialogFunction) => void; type SubmitButtonProps = { onSubmit: SubmitFunction; closeDialog: CloseDialogFunction; }; function SubmitButton(props: SubmitButtonProps) { const { onSubmit, closeDialog } = props; const { handleSubmit } = useFormContext(); const handleClick = useCallback( (event: any) => { (event as Event).preventDefault(); (event as Event).stopPropagation(); handleSubmit((fieldValues) => onSubmit(fieldValues, closeDialog))(); }, [handleSubmit, onSubmit, closeDialog] ); return (