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}
>
)}
);
};