import { ChangeEvent, ComponentProps, createRef } from 'react'; import { Upload, XCircle } from 'lucide-react'; import { Button } from '@@/buttons'; import { Icon } from '@@/Icon'; import styles from './FileUploadField.module.css'; export interface Props { onChange(value: File): void; value?: File | null; accept?: string; title?: string; required?: boolean; inputId: string; color?: ComponentProps['color']; } export function FileUploadField({ onChange, value, accept, title = 'Select a file', required = false, inputId, color = 'primary', }: 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]); } } }