Переглянути джерело

validasi dokumen di laporan

yazid138 3 роки тому
батько
коміт
fa94ec4953
1 змінених файлів з 32 додано та 8 видалено
  1. 32 8
      pages/laporan/new/index.js

+ 32 - 8
pages/laporan/new/index.js

@@ -18,18 +18,42 @@ import swal from "sweetalert";
 
 import "react-toastify/dist/ReactToastify.css";
 
+const checkIfFilesAreTooBig = (files) => {
+	let valid = true;
+	if (files) {
+		files.map((file) => {
+			if (file.size > 15 * 1024 * 1024) {
+				valid = false;
+			}
+		});
+	}
+	return valid;
+};
+
+const checkIfFilesAreCorrectType = (files) => {
+	let valid = true;
+	if (files) {
+		files.map((file) => {
+			if (!["image/jpeg", "image/png"].includes(file.type)) {
+				valid = false;
+			}
+		});
+	}
+	return valid;
+};
+
 const laporanSchema = Yup.object().shape({
 	no_laporan: Yup.string().required("Harap Diisi"),
 	no_hp: Yup.number().required("Harap Diisi"),
-	nama: Yup.string().required(),
+	nama: Yup.string().required("Harap Diisi"),
 	setuju: Yup.boolean().isTrue(),
-	alamat: Yup.string().min(3).max(200).required(),
-	keterangan: Yup.string().min(3).max(200).required(),
-	email: Yup.string().email().required(),
-	pelanggaran_id: Yup.array().min(1).required(),
-	pt_id: Yup.string().required(),
-	foto: Yup.array().min(1).required("Harus ada"),
-	dokumen: Yup.mixed().nullable().notRequired(),
+	alamat: Yup.string().min(3).max(200).required("Harap Diisi"),
+	keterangan: Yup.string().min(3).max(200).required("Harap Diisi"),
+	email: Yup.string().email().required("Harap Diisi"),
+	pelanggaran_id: Yup.array().min(1).required("Harap Diisi"),
+	pt_id: Yup.string().required("Harap Diisi"),
+	foto: Yup.array().min(1, "Minimal ada 1 data").required("Harus ada").test("filesize", "size foto terlalu besar", checkIfFilesAreTooBig).test("type", "harus jpeg/png", checkIfFilesAreCorrectType),
+	dokumen: Yup.array().nullable().notRequired().test("filesize", "Dokumen terlalu besar", checkIfFilesAreTooBig),
 	is_private: Yup.boolean().notRequired(),
 });