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