update FileUpload
This commit is contained in:
@@ -13,6 +13,7 @@ import getPropeMimeLabels from '../../../../helpers/getPropeMimeLabels';
|
||||
import { FileUpload } from 'primereact/fileupload';
|
||||
import { Tag } from 'primereact/tag';
|
||||
import { Button } from 'primereact/button';
|
||||
import { Messages } from 'primereact/messages';
|
||||
|
||||
import { defaultMaxFileSize, mimeTypes } from '../../../../configData';
|
||||
import getFormatedFileSizeText from '../../../../helpers/getFormatedFileSizeText';
|
||||
@@ -47,24 +48,48 @@ const Fileupload = ({
|
||||
const [acceptFormats, setAcceptFormats] = useState('');
|
||||
const [formatsForInput, setFormatsForInput] = useState('');
|
||||
const inputRef = useRef();
|
||||
const messagesRef = useRef(null);
|
||||
|
||||
const customBase64Uploader = (event) => {
|
||||
const formData = new FormData()
|
||||
const filesToUpload = [];
|
||||
const uploadedFiles = inputRef.current ? inputRef.current.getUploadedFiles() : [];
|
||||
const currentFiles = stateFieldData;
|
||||
|
||||
for (const file of event.files) {
|
||||
const isDuplicate = [...uploadedFiles, ...currentFiles].some(
|
||||
(uploadedFile)=>uploadedFile.name === file.name
|
||||
);
|
||||
|
||||
if(isDuplicate){
|
||||
messagesRef.current.show({
|
||||
severity: 'error',
|
||||
summary: __('Attenzione', 'gepafin'),
|
||||
detail: `Il file con nome "${file.name}" è già stato caricato.`,
|
||||
life: 10000
|
||||
});
|
||||
} else {
|
||||
formData.append('file', file)
|
||||
filesToUpload.push(file);
|
||||
}
|
||||
|
||||
}
|
||||
if(filesToUpload.length > 0 ){
|
||||
FileUploadService.uploadFile(sourceId, formData, callback, errorCallback, [
|
||||
['documentType', doctype.toUpperCase()],
|
||||
['sourceType', source.toUpperCase()]
|
||||
]);
|
||||
}
|
||||
};
|
||||
|
||||
const callback = (data) => {
|
||||
const callback = (data, uploadedFiles) => {
|
||||
if (data.status === 'SUCCESS') {
|
||||
setStateFieldData(data.data);
|
||||
const uploadedFiles = inputRef.current.getUploadedFiles();
|
||||
setDataFn(fieldName, [...uploadedFiles, ...data.data], { shouldValidate: true });
|
||||
setStateFieldData(prevState => [...prevState, ...data.data]);
|
||||
const currentUploadedFiles = inputRef.current.getUploadedFiles() || [];
|
||||
inputRef.current.setFiles([]);
|
||||
|
||||
setDataFn(fieldName, [...currentUploadedFiles, ...data.data], { shouldValidate: true });
|
||||
|
||||
saveFormCallback();
|
||||
}
|
||||
}
|
||||
@@ -204,6 +229,7 @@ const Fileupload = ({
|
||||
return (
|
||||
sourceId || sourceId === 0
|
||||
? <>
|
||||
<Messages ref={messagesRef} />
|
||||
<label htmlFor={fieldName} className={classNames({ 'p-error': errors[fieldName] })}>
|
||||
{label}{config.required || config.isRequired ?
|
||||
<span className="appForm__field--required">*</span> : null}
|
||||
|
||||
Reference in New Issue
Block a user