import { ReactNode } from 'react'; import { Box, Flex, Text } from '@chakra-ui/react'; import { MdErrorOutline, MdHelpOutline, MdRefresh } from 'react-icons/md'; import { useFormidableContextElement } from '../formidable'; const DisplayLabel = ({ label, isRequired, }: { label?: ReactNode; isRequired: boolean; }) => { if (!label) { return <>; } return ( {label}{' '} {isRequired && ( * )} ); }; const DisplayHelp = ({ help }: { help?: ReactNode }) => { if (!help) { return <>; } return ( {help} ); }; const DisplayError = ({ error }: { error?: ReactNode }) => { if (!error) { return <>; } return ( {error} ); }; export type FormGroupProps = { children: ReactNode; name: string; error?: ReactNode; help?: ReactNode; label?: ReactNode; isRequired?: boolean; disableSingleLine?: boolean; }; export const FormGroup = ({ children, name, help, label, isRequired = false, disableSingleLine, }: FormGroupProps) => { const { form, error, isModify, onRestore } = useFormidableContextElement(name); const enableModifyNotification = form.configuration.enableModifyNotification ?? false; const enableReset = form.configuration.enableReset ?? false; const singleLine = disableSingleLine ? false : form.configuration.singleLineForm; return ( {singleLine && ( <> {!!onRestore && isModify && enableReset && ( )} {children} )} {!singleLine && ( <> {!!onRestore && isModify && enableReset && ( )} {children} )} ); };