└── AddFiles.jsx /AddFiles.jsx: -------------------------------------------------------------------------------- 1 | import { useMemo } from 'react'; 2 | import { getFileTypeLabels, validateFiles } from './AddFiles.service'; 3 | import classes from './AddFiles.module.css'; 4 | import { TooltipBox } from '../TooltipBox/TooltipBox'; 5 | import { TiDeleteOutline } from 'react-icons/ti'; 6 | import { shrinkString } from '../../utils/global.services'; 7 | import { TooltipPlacement } from '../TooltipBox/TooltipBox.service'; 8 | 9 | export const AddFiles = ({ 10 | files, 11 | setAttachments, 12 | setAlert, 13 | loading, 14 | filesLimit = 1, 15 | fileTypes = ['jpg', 'jpeg', 'gif', 'png', 'pdf', 'csv'], 16 | id, 17 | containerClassName = '', 18 | children 19 | }) => { 20 | const acceptedTypes = useMemo(() => `.${fileTypes.join(', .')}`, [fileTypes]); 21 | 22 | const getFile = (e) => { 23 | if (!e.target?.files?.length) return; 24 | 25 | validateFiles({ 26 | addedFiles: e.target.files, 27 | files, 28 | setAlert, 29 | setAttachments, 30 | fileTypes, 31 | filesLimit 32 | }); 33 | e.target.value = ''; 34 | }; 35 | 36 | return ( 37 |
76 | {file.name.length > 20 ? (
77 |