import { ChangeEvent, ComponentProps, createRef } from 'react'; import { Upload, XCircle } from 'lucide-react'; import { AutomationTestingProps } from '@CE/types'; import { Button } from '@@CE/buttons'; import { Icon } from '@@CE/Icon'; import styles from './FileUploadField.module.css'; export interface Props extends AutomationTestingProps { onChange(value: File): void; value?: File | null; accept?: string; title?: string; required?: boolean; inputId: string; color?: ComponentProps['color']; name?: string; } export function FileUploadField({ onChange, value, accept, title = 'Select a file', required = false, inputId, color = 'primary', name, 'data-cy': dataCy, }: Props) { const fileRef = createRef(); return (
{value ? value.name : required && }
); function handleButtonClick() { if (fileRef && fileRef.current) { fileRef.current.click(); } } function changeHandler(event: ChangeEvent) { if (event.target && event.target.files && event.target.files.length > 0) { onChange(event.target.files[0]); } } }