|
|
@@ -75,12 +75,12 @@ const laporanSchema = Yup.object().shape({
|
|
|
keterangan: Yup.string()
|
|
|
.min(3, "Minimal 3 huruf")
|
|
|
.max(200, "Maksimal 200 huruf")
|
|
|
- .required(""),
|
|
|
+ .required("Wajib diisi"),
|
|
|
email: Yup.string().email().notRequired(),
|
|
|
pelanggaran_id: Yup.array()
|
|
|
.min(1, "Minimal terdapat 1 jenis pelanggaran")
|
|
|
- .required(""),
|
|
|
- pt_id: Yup.string().required(""),
|
|
|
+ .required("Wajib diisi"),
|
|
|
+ pt_id: Yup.string().required("Wajib diisi"),
|
|
|
foto: Yup.array()
|
|
|
.notRequired()
|
|
|
.test("filesize", "Maksimal ukuran foto 15mb", checkIfFilesAreTooBig)
|
|
|
@@ -144,6 +144,7 @@ class App extends Component {
|
|
|
confirm: false,
|
|
|
msgError: [],
|
|
|
modal: false,
|
|
|
+ modalNotnoHP: false,
|
|
|
user: {},
|
|
|
kode: "",
|
|
|
error: null,
|
|
|
@@ -160,8 +161,12 @@ class App extends Component {
|
|
|
this.setState({ pelanggaran });
|
|
|
};
|
|
|
|
|
|
- toggleModal = () => {
|
|
|
- this.setState({ modal: !this.state.modal });
|
|
|
+ toggleModal = (no_hp = null) => {
|
|
|
+ if (no_hp) {
|
|
|
+ this.setState({ modal: !this.state.modal })
|
|
|
+ } else {
|
|
|
+ this.setState({ modalNotnoHP: !this.state.modalNotnoHP });
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
optionsJenisPelanggaran = (pelanggaran) => {
|
|
|
@@ -243,20 +248,16 @@ class App extends Component {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- // const toastid = toast.loading("loading...");
|
|
|
this.setState({ loading: true });
|
|
|
const success = await createLaporanPublic(token, formdata);
|
|
|
if (!success) {
|
|
|
- // toast.update(toastid, { render: "All is not good", type: "error", isLoading: false, autoClose: true, closeButton: true });
|
|
|
swal.fire({
|
|
|
title: "Kode verifikasi salah",
|
|
|
icon: "error",
|
|
|
confirmButtonColor: "#3e3a8e",
|
|
|
- // isLoading: true,
|
|
|
});
|
|
|
this.setState({ error: "Kode verifikasi tidak valid" });
|
|
|
} else {
|
|
|
- // toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
|
|
|
swal.fire({
|
|
|
title: "Data berhasil dikirim",
|
|
|
icon: "success",
|
|
|
@@ -332,7 +333,7 @@ class App extends Component {
|
|
|
}}
|
|
|
validationSchema={laporanSchema}
|
|
|
onSubmit={async (data) => {
|
|
|
- this.toggleModal();
|
|
|
+ this.toggleModal(data.no_hp);
|
|
|
this.setState({ data, no_laporan: data.no_laporan });
|
|
|
this.setState({ data, no_hp: data.no_hp });
|
|
|
const user = await this.createUser(data);
|
|
|
@@ -454,10 +455,8 @@ class App extends Component {
|
|
|
<div class="header-1">
|
|
|
<h2 class="card-title-1">
|
|
|
Detail Laporan
|
|
|
- {/* <span className="font-20">(wajib diisi)</span> */}
|
|
|
</h2>
|
|
|
</div>
|
|
|
- {/* <p className="lead bb">Detail Laporan</p> */}
|
|
|
<FormGroup row>
|
|
|
<label className="col-md-2 col-form-label">
|
|
|
Nomor Pelaporan
|
|
|
@@ -631,6 +630,13 @@ class App extends Component {
|
|
|
<label className="modals-verifikasi font-color-white">
|
|
|
Masukkan Kode Verifikasi
|
|
|
</label>
|
|
|
+ <Button
|
|
|
+ className="ml-auto float-lg-right color-3e3a8e btn-login"
|
|
|
+ color
|
|
|
+ type="cancel"
|
|
|
+ >
|
|
|
+ <span className="font-color-white">cancel</span>
|
|
|
+ </Button>
|
|
|
<div className="border-2">
|
|
|
<Input
|
|
|
className="border-2"
|
|
|
@@ -675,13 +681,111 @@ class App extends Component {
|
|
|
</FormGroup>
|
|
|
</ModalBody>
|
|
|
<ModalFooter>
|
|
|
+
|
|
|
+ <Button
|
|
|
+ className="btn-login"
|
|
|
+ color
|
|
|
+ onClick={async () => {
|
|
|
+ await this.createLaporan(this.state.token);
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {this.state.loading ?
|
|
|
+ (
|
|
|
+ <div class="d-flex justify-content-center">
|
|
|
+ <span
|
|
|
+ class="spinner-border spinner-border-sm text-white"
|
|
|
+ role="status"
|
|
|
+ ></span>
|
|
|
+ <span className="font-color-white">
|
|
|
+ Diproses...
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ ) : (
|
|
|
+ <span className="font-color-white">
|
|
|
+ Buat Laporan Tanpa Kode Verifikasi
|
|
|
+ </span>
|
|
|
+ )}
|
|
|
+ </Button>
|
|
|
<Button
|
|
|
- className="color-3e3a8e ml-auto btn-login"
|
|
|
+ className="color-3e3a8e btn-login"
|
|
|
color
|
|
|
- type="cancel"
|
|
|
+ onClick={async () => {
|
|
|
+ if (this.state.kode) {
|
|
|
+ await this.createLaporan(
|
|
|
+ this.state.token,
|
|
|
+ this.state.kode
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ this.setState({ error: "Kode verifikasi harus diisi" });
|
|
|
+ }
|
|
|
+ }}
|
|
|
>
|
|
|
- <span className="font-color-white">cancel</span>
|
|
|
+ <span className="font-color-white">Kirim</span>
|
|
|
</Button>
|
|
|
+ </ModalFooter>
|
|
|
+ </form>
|
|
|
+ </Modal>
|
|
|
+
|
|
|
+ <Modal isOpen={this.state.modalNotnoHP}>
|
|
|
+ <form className="form-horizontal">
|
|
|
+ <ModalBody>
|
|
|
+ <FormGroup>
|
|
|
+ {/* <div className="">
|
|
|
+ <label className="modals-verifikasi font-color-white">
|
|
|
+ Masukkan Kode Verifikasi
|
|
|
+ </label>
|
|
|
+ <Button
|
|
|
+ className="ml-auto float-lg-right color-3e3a8e btn-login"
|
|
|
+ color
|
|
|
+ type="cancel"
|
|
|
+ >
|
|
|
+ <span className="font-color-white">cancel</span>
|
|
|
+ </Button>
|
|
|
+ <div className="border-2">
|
|
|
+ <Input
|
|
|
+ className="border-2"
|
|
|
+ onChange={(e) =>
|
|
|
+ this.setState({ kode: e.target.value })
|
|
|
+ }
|
|
|
+ type="text"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <p>
|
|
|
+ *Kode verifikasi terkirim ke nomor WA {this.state.no_hp}
|
|
|
+ </p>
|
|
|
+ </div> */}
|
|
|
+
|
|
|
+ <p className="font-color-black">
|
|
|
+ NOTE : Diharapkan pelapor dapat mencatat ataupun mengingat
|
|
|
+ nomor laporan di bawah ini untuk mempermudah proses
|
|
|
+ selanjutnya.
|
|
|
+ </p>
|
|
|
+ <div className="modals">
|
|
|
+ <label className="modals font-color-white font-20 ">
|
|
|
+ Nomor Laporan : {this.state.no_laporan}
|
|
|
+ </label>
|
|
|
+ <CopyToClipboard
|
|
|
+ text={this.state.no_laporan}
|
|
|
+ options={{ asHtml: true }}
|
|
|
+ >
|
|
|
+ <Button color className="btn-verif">
|
|
|
+ <img
|
|
|
+ src="/static/img/icon-copy.png"
|
|
|
+ alt="icon-copy"
|
|
|
+ width="20"
|
|
|
+ />
|
|
|
+ </Button>
|
|
|
+ </CopyToClipboard>
|
|
|
+ </div>
|
|
|
+ {this.state.error && (
|
|
|
+ <div className="form-text text-danger">
|
|
|
+ {this.state.error}
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
+ </FormGroup>
|
|
|
+ </ModalBody>
|
|
|
+ <ModalFooter>
|
|
|
+
|
|
|
<Button
|
|
|
className="btn-login"
|
|
|
color
|