|
|
@@ -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(),
|
|
|
});
|
|
|
|