From 8971b35ae3148d5b684c845bc8ae0036e314c5dc Mon Sep 17 00:00:00 2001 From: VividTruthKeeper Date: Sun, 17 Apr 2022 16:59:57 +0500 Subject: [PATCH] file sizes handled --- src/components/CardStages/CardStage4.js | 31 ++++++++++++++++++--- src/components/CreditStages/CreditStage5.js | 23 +++++++++++++-- src/maxFileSize.js | 1 + src/scss/_global.scss | 4 +++ 4 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 src/maxFileSize.js diff --git a/src/components/CardStages/CardStage4.js b/src/components/CardStages/CardStage4.js index 5165ee6..d1e614a 100644 --- a/src/components/CardStages/CardStage4.js +++ b/src/components/CardStages/CardStage4.js @@ -1,6 +1,7 @@ // IMPORT MODULES import React, { useState, useEffect, useContext } from "react"; import { LanguageContext } from "../../backend/LanguageContext"; +import { maxFileSize } from "../../maxFileSize"; // IMPORT IMAGES import remove from "../../icons/remove.svg"; @@ -8,13 +9,17 @@ import next from "../../icons/next.svg"; import arrow from "../../icons/arrow.svg"; import next_reverse from "../../icons/next-reverse.svg"; -const CardStage4 = ({ setStage, data, setData, req, setReq }) => { +const CardStage4 = ({ setStage, data, setData, req }) => { const { locale } = useContext(LanguageContext); const [files, setFiles] = useState(data.file ? data.file : []); const [btnEnabled, setBtnEnabled] = useState(false); const [dropdown, setDropdown] = useState(false); - const parser = new DOMParser(); + const [validSize, setValidSize] = useState(true); + + // Bytes <= Megabytes + // | ||||||||||||||||| + const maxSize = maxFileSize * 1024 * 1024; useEffect(() => { if (files.length > 0) { @@ -70,9 +75,16 @@ const CardStage4 = ({ setStage, data, setData, req, setReq }) => { { - setFiles([...files, e.target.files[0]]); - e.target.value = ""; + if (e.target.files[0].size > maxSize) { + setValidSize(false); + e.target.value = ""; + } else { + setFiles([...files, e.target.files[0]]); + e.target.value = ""; + setValidSize(true); + } }} /> @@ -102,6 +114,17 @@ const CardStage4 = ({ setStage, data, setData, req, setReq }) => { }) : null} +

+ {locale === "TKM" + ? "Hemme faýllar diňe görkezilen formatda bolmaly: " + : "Все файлы должны быть следующих форматов: "} + .jpg, .jpeg, .doc, .docx, .pdf, .png +

+

+ {locale === "TKM" + ? `Faýlyň ölçegi ${maxFileSize} MB-den geçmeli däl` + : `Размер файла не должен превышать ${maxFileSize} МБ`} +

@@ -131,6 +145,11 @@ const CreditStage5 = ({ setStage, data, setData, creditData, id }) => { : "Все файлы должны быть следующих форматов: "} .jpg, .jpeg, .doc, .docx, .pdf, .png

+

+ {locale === "TKM" + ? `Faýlyň ölçegi ${maxFileSize} MB-den geçmeli däl` + : `Размер файла не должен превышать ${maxFileSize} МБ`} +