import React, { type HTMLAttributes } from 'react' import classnames from 'classnames' import { Icon } from '~components/Icon' import { Text } from '~components/Text' import { type OverrideClassName } from '~components/types/OverrideClassName' import styles from './FieldMessage.module.css' export type FieldMessageStatus = 'default' | 'success' | 'error' | 'caution' export type FieldMessageProps = { message?: React.ReactNode /** @default "default" */ status?: FieldMessageStatus /** @default "bottom" */ position?: 'top' | 'bottom' reversed?: boolean } & OverrideClassName> export const FieldMessage = ({ message, status = 'default', position = 'bottom', reversed = false, classNameOverride, ...restProps }: FieldMessageProps): JSX.Element => { const textColor = status === 'default' || status === 'success' ? reversed ? 'white-reduced-opacity' : 'dark-reduced-opacity' : 'dark' return (
{(status === 'error' || status === 'caution') && ( )}
{message}
) } FieldMessage.displayName = 'FieldMessage'