import React, { useId, useMemo } from 'react'; import type { SafeOmit } from '@shoptet/utils'; import type { FormRowProps } from '../../FormRow/FormRow'; import { FormRow } from '../../FormRow/FormRow'; import type { FormRowHelperTextOwnProps } from '../../FormRow/FormRowHelperText'; import type { ImageSelectProps } from '../../Inputs/ImageSelect/ImageSelect'; import { ImageSelect } from '../../Inputs/ImageSelect/ImageSelect'; import type { SelectKey } from '../../Inputs/RadioGroup/RadioGroup'; interface ImageSelectFieldInheritedProps extends Partial, SafeOmit {} export interface ImageSelectFieldProps extends ImageSelectProps, ImageSelectFieldInheritedProps { /** * The label for the field. */ label: string; /** * Whether the label should be visually hidden (still accessible to screen readers). */ labelHidden?: boolean; } export function ImageSelectField({ id, label, labelHidden, required, tooltip, justify, hint, error, warning, ...rest }: ImageSelectFieldProps) { const internalId = useId(); const inputId = id ?? `imageSelect${internalId}`; const helperTextElement = useMemo( () => , [error, hint, warning] ); return ( id={inputId} validity={error ? 'error' : warning ? 'warning' : undefined} required={required} {...rest} /> {helperTextElement} ); } ImageSelectField.displayName = 'ImageSelectField';