diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json index a4791a5..a7b7a9a 100644 --- a/public/locales/fa/app.json +++ b/public/locales/fa/app.json @@ -177,9 +177,6 @@ "UploadSystem": { "upload_file": "آپلود فایل", "delete": "پاک کردن", - "button-reject": "عدم تایید", - "button-cancel": "بستن", - "description": "توضیحات", - "description_error": "وارد کردن توضیحات الزامی است!" + "uploadfile_error": "حجم فایل بیشتر از 2 مگابایت می باشد" } } diff --git a/src/components/dashboard/machinary-office/Form/ConfirmForm.jsx b/src/components/dashboard/machinary-office/Form/ConfirmForm.jsx index f868aa0..6166ff4 100644 --- a/src/components/dashboard/machinary-office/Form/ConfirmForm.jsx +++ b/src/components/dashboard/machinary-office/Form/ConfirmForm.jsx @@ -13,9 +13,12 @@ import { useState } from "react"; import { useFormik } from "formik"; import * as Yup from "yup"; import UploadSystem from "@/core/components/UploadSystem"; +import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; +import useDirection from "@/lib/app/hooks/useDirection"; const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { const t = useTranslations(); + const { directionApp } = useDirection(); const [proposedAmount, setProposedAmount] = useState(""); const [description, setDescription] = useState(""); const [selectedImage, setSelectedImage] = useState(""); @@ -55,6 +58,11 @@ const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { const handleUploadChange = (event) => { const uploadedFile = event.target?.files?.[0]; if (uploadedFile) { + const maxFileSize = 2 * 1024 * 1024; + if (uploadedFile.size > maxFileSize) { + UploadFileNotification(directionApp, t); + return; + } const fileType = event.target?.files?.[0].type; const fileName = event.target?.files?.[0].name; setSelectedImage(URL.createObjectURL(uploadedFile)); diff --git a/src/components/dashboard/machinary-office/Form/RejectForm.jsx b/src/components/dashboard/machinary-office/Form/RejectForm.jsx index 69f7e61..70c606c 100644 --- a/src/components/dashboard/machinary-office/Form/RejectForm.jsx +++ b/src/components/dashboard/machinary-office/Form/RejectForm.jsx @@ -13,9 +13,12 @@ import { useFormik } from "formik"; import * as Yup from "yup"; import { useState } from "react"; import UploadSystem from "@/core/components/UploadSystem"; +import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; +import useDirection from "@/lib/app/hooks/useDirection"; const RejectForm = ({ open, handleClose, rowId, rejectData }) => { const t = useTranslations(); + const { directionApp } = useDirection(); const [description, setDescription] = useState(""); const [selectedImage, setSelectedImage] = useState(""); const [fileType, setfileType] = useState(null); @@ -47,6 +50,11 @@ const RejectForm = ({ open, handleClose, rowId, rejectData }) => { const handleUploadChange = (event) => { const uploadedFile = event.target?.files?.[0]; if (uploadedFile) { + const maxFileSize = 2 * 1024 * 1024; + if (uploadedFile.size > maxFileSize) { + UploadFileNotification(directionApp, t); + return; + } const fileType = event.target?.files?.[0].type; const fileName = event.target?.files?.[0].name; setSelectedImage(URL.createObjectURL(uploadedFile)); diff --git a/src/components/dashboard/passenger-boss/Form/ConfirmForm.jsx b/src/components/dashboard/passenger-boss/Form/ConfirmForm.jsx index d8f3b00..788305c 100644 --- a/src/components/dashboard/passenger-boss/Form/ConfirmForm.jsx +++ b/src/components/dashboard/passenger-boss/Form/ConfirmForm.jsx @@ -13,9 +13,12 @@ import { useState } from "react"; import { useFormik } from "formik"; import * as Yup from "yup"; import UploadSystem from "@/core/components/UploadSystem"; +import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; +import useDirection from "@/lib/app/hooks/useDirection"; const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { const t = useTranslations(); + const { directionApp } = useDirection(); const [proposedAmount, setProposedAmount] = useState(""); const [description, setDescription] = useState(""); const [selectedImage, setSelectedImage] = useState(""); @@ -56,6 +59,11 @@ const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { const handleUploadChange = (event) => { const uploadedFile = event.target?.files?.[0]; if (uploadedFile) { + const maxFileSize = 2 * 1024 * 1024; + if (uploadedFile.size > maxFileSize) { + UploadFileNotification(directionApp, t); + return; + } const fileType = event.target?.files?.[0].type; const fileName = event.target?.files?.[0].name; setSelectedImage(URL.createObjectURL(uploadedFile)); diff --git a/src/components/dashboard/passenger-boss/Form/RejectForm.jsx b/src/components/dashboard/passenger-boss/Form/RejectForm.jsx index d430af5..eeb23c1 100644 --- a/src/components/dashboard/passenger-boss/Form/RejectForm.jsx +++ b/src/components/dashboard/passenger-boss/Form/RejectForm.jsx @@ -13,9 +13,12 @@ import { useFormik } from "formik"; import * as Yup from "yup"; import { useState } from "react"; import UploadSystem from "@/core/components/UploadSystem"; +import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; +import useDirection from "@/lib/app/hooks/useDirection"; const RejectForm = ({ open, handleClose, rowId, rejectData }) => { const t = useTranslations(); + const { directionApp } = useDirection(); const [description, setDescription] = useState(""); const [selectedImage, setSelectedImage] = useState(""); const [fileType, setfileType] = useState(null); @@ -43,10 +46,15 @@ const RejectForm = ({ open, handleClose, rowId, rejectData }) => { setDescription(event.target.value); formik.handleChange(event); }; - + const handleUploadChange = (event) => { const uploadedFile = event.target?.files?.[0]; if (uploadedFile) { + const maxFileSize = 2 * 1024 * 1024; + if (uploadedFile.size > maxFileSize) { + UploadFileNotification(directionApp, t); + return; + } const fileType = event.target?.files?.[0].type; const fileName = event.target?.files?.[0].name; setSelectedImage(URL.createObjectURL(uploadedFile)); diff --git a/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx b/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx index 86eced4..645c2f6 100644 --- a/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx +++ b/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx @@ -1,5 +1,7 @@ import UploadSystem from "@/core/components/UploadSystem"; +import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import { CONFIRM_PASSENGER_OFFICE } from "@/core/data/apiRoutes"; +import useDirection from "@/lib/app/hooks/useDirection"; import { Dialog, DialogTitle, @@ -8,39 +10,33 @@ import { DialogActions, Button, TextField, - FormHelperText, } from "@mui/material"; import { useFormik } from "formik"; import { useTranslations } from "next-intl"; import { useRef, useState } from "react"; -const MAX_FILE_SIZE_IN_BYTES = 2 * 1024 * 1024; const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { const t = useTranslations(); + const { directionApp } = useDirection(); const [description, setDescription] = useState(""); const [selectedImage, setSelectedImage] = useState(""); const [fileType, setfileType] = useState(null); const [fileName, setfileName] = useState(null); const [showAddIcon, setShowAddIcon] = useState(true); - const formik = useFormik({ initialValues: { description: "", - fileData: null, }, onSubmit: () => { const formData = new FormData(); if (description !== "") formData.append("expert_description", description); - if (fileData !== null) formData.append("file", fileData); handleClose(); confirmData(CONFIRM_PASSENGER_OFFICE, rowId, formData); }, }); - - const handleDescriptionChange = (event) => { setDescription(event.target.value); formik.handleChange(event); @@ -49,6 +45,11 @@ const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { const handleUploadChange = (event) => { const uploadedFile = event.target?.files?.[0]; if (uploadedFile) { + const maxFileSize = 2 * 1024 * 1024; + if (uploadedFile.size > maxFileSize) { + UploadFileNotification(directionApp, t); + return; + } const fileType = event.target?.files?.[0].type; const fileName = event.target?.files?.[0].name; setSelectedImage(URL.createObjectURL(uploadedFile)); diff --git a/src/components/dashboard/passenger-office/Form/RejectForm.jsx b/src/components/dashboard/passenger-office/Form/RejectForm.jsx index 5ee55f1..d4ab6d6 100644 --- a/src/components/dashboard/passenger-office/Form/RejectForm.jsx +++ b/src/components/dashboard/passenger-office/Form/RejectForm.jsx @@ -13,15 +13,18 @@ import { useFormik } from "formik"; import * as Yup from "yup"; import { useState } from "react"; import UploadSystem from "@/core/components/UploadSystem"; +import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; +import useDirection from "@/lib/app/hooks/useDirection"; const RejectForm = ({ open, handleClose, rowId, rejectData }) => { const t = useTranslations(); + const { directionApp } = useDirection(); const [description, setDescription] = useState(""); const [selectedImage, setSelectedImage] = useState(""); const [fileType, setfileType] = useState(null); const [fileName, setfileName] = useState(null); const [showAddIcon, setShowAddIcon] = useState(true); - + const validationSchema = Yup.object().shape({ description: Yup.string().required(t("RejectDialog.description_error")), }); @@ -46,6 +49,11 @@ const RejectForm = ({ open, handleClose, rowId, rejectData }) => { const handleUploadChange = (event) => { const uploadedFile = event.target?.files?.[0]; if (uploadedFile) { + const maxFileSize = 2 * 1024 * 1024; + if (uploadedFile.size > maxFileSize) { + UploadFileNotification(directionApp, t); + return; + } const fileType = event.target?.files?.[0].type; const fileName = event.target?.files?.[0].name; setSelectedImage(URL.createObjectURL(uploadedFile)); diff --git a/src/components/dashboard/province-manager/Form/ConfirmForm.jsx b/src/components/dashboard/province-manager/Form/ConfirmForm.jsx index 0a8078f..e5c04ec 100644 --- a/src/components/dashboard/province-manager/Form/ConfirmForm.jsx +++ b/src/components/dashboard/province-manager/Form/ConfirmForm.jsx @@ -1,5 +1,7 @@ import UploadSystem from "@/core/components/UploadSystem"; +import UploadFileNotification from "@/core/components/notifications/UploadFileNotification"; import { CONFIRM_PROVINCE_MANAGER } from "@/core/data/apiRoutes"; +import useDirection from "@/lib/app/hooks/useDirection"; import { Dialog, DialogTitle, @@ -8,15 +10,14 @@ import { DialogActions, Button, TextField, - FormHelperText, } from "@mui/material"; import { useFormik } from "formik"; import { useTranslations } from "next-intl"; import { useRef, useState } from "react"; -const MAX_FILE_SIZE_IN_BYTES = 2 * 1024 * 1024; const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { const t = useTranslations(); + const { directionApp } = useDirection(); const [description, setDescription] = useState(""); const [selectedImage, setSelectedImage] = useState(""); const [fileType, setfileType] = useState(null); @@ -26,13 +27,11 @@ const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { const formik = useFormik({ initialValues: { description: "", - fileData: null, }, onSubmit: () => { const formData = new FormData(); if (description !== "") formData.append("expert_description", description); - if (fileData !== null) formData.append("file", fileData); handleClose(); confirmData(CONFIRM_PROVINCE_MANAGER, rowId, formData); }, @@ -46,6 +45,11 @@ const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { const handleUploadChange = (event) => { const uploadedFile = event.target?.files?.[0]; if (uploadedFile) { + const maxFileSize = 2 * 1024 * 1024; + if (uploadedFile.size > maxFileSize) { + UploadFileNotification(directionApp, t); + return; + } const fileType = event.target?.files?.[0].type; const fileName = event.target?.files?.[0].name; setSelectedImage(URL.createObjectURL(uploadedFile)); @@ -86,7 +90,6 @@ const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { setShowAddIcon={setShowAddIcon} showAddIcon={showAddIcon} /> -