import {FieldValues, SubmitHandler, UseFormReturn} from 'react-hook-form'; import clsx from 'clsx'; import React, {ReactNode} from 'react'; import {useStickySentinel} from '../utils/hooks/sticky-sentinel'; import {Form} from '../ui/forms/form'; import {Button} from '../ui/buttons/button'; import {Trans} from '../i18n/trans'; interface Props { onSubmit: SubmitHandler; form: UseFormReturn; title: ReactNode; subTitle?: ReactNode; isLoading: boolean; children: ReactNode; actions?: ReactNode; backButton?: ReactNode; disableSaveWhenNotDirty?: boolean; wrapInContainer?: boolean; } export function CrupdateResourceLayout({ onSubmit, form, title, subTitle, children, actions, backButton, isLoading = false, disableSaveWhenNotDirty = false, wrapInContainer = true, }: Props) { const {isSticky, sentinelRef} = useStickySentinel(); const isDirty = !disableSaveWhenNotDirty ? true : Object.keys(form.formState.dirtyFields).length; return (
form.clearErrors()} form={form} >
{backButton}

{title}

{subTitle &&
{subTitle}
}
{actions}
{children}
); }