UNPKG

@navikt/ds-react

Version:

React components from the Norwegian Labour and Welfare Administration.

44 lines 1.37 kB
import { fileRejectionReason, } from "../FileUpload.types.js"; import { isAcceptedFileType } from "./is-accepted-file-type.js"; import { isAcceptedSize } from "./is-accepted-size.js"; export const validateFiles = (files, accept, validator, maxSizeInBytes = -1) => { const allFiles = []; const accepted = []; const rejected = []; files.forEach((file) => { const acceptedFileType = isAcceptedFileType(file, accept); const acceptedFileSize = isAcceptedSize(file, maxSizeInBytes); const customValidation = validator ? validator(file) : true; const reasons = []; if (customValidation !== true) { reasons.push(customValidation); } if (!acceptedFileType) { reasons.push(fileRejectionReason.FileType); } if (!acceptedFileSize) { reasons.push(fileRejectionReason.FileSize); } allFiles.push({ file, error: reasons.length > 0, reasons, }); if (reasons.length === 0) { accepted.push(file); return; } rejected.push({ file, reasons, }); }); return { files: allFiles, partitionedFiles: { accepted, rejected, }, }; }; //# sourceMappingURL=validate-files.js.map