import { useFormikContext } from 'formik'; import type { ReactElement } from 'react'; import { Button } from '../Button'; import type { FormVariant } from './Form.models'; import { useStyles } from './Form.styles'; export type FormActionsProps = { enableSubmitWhenNotDirty?: boolean; labels: FormActionsLabels; onCancel: () => void; variant: FormVariant; isCancelButtonVisible?: boolean; disableSubmit?: boolean; }; export type FormActionsLabels = { cancel: string; submit: Record; }; const FormActions = ({ labels, onCancel, variant, enableSubmitWhenNotDirty, isCancelButtonVisible = true, disableSubmit = false }: FormActionsProps): ReactElement => { const { classes } = useStyles(); const { isSubmitting, dirty, isValid, submitForm } = useFormikContext(); const isSubmitDisabled = disableSubmit || isSubmitting || (!dirty && !enableSubmitWhenNotDirty) || !isValid; return (
{isCancelButtonVisible && ( )}
); }; export { FormActions };