import React, { Component } from "react"; import { Row, Col, Input, FormGroup, Label } from "reactstrap"; import Select from "react-select"; import DatePicker from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; import ms from "ms"; import TmtDate from "./TmtDate"; import { addDays, addMonths } from 'date-fns'; import id from 'date-fns/locale/id'; // registerLocale('id', id) let Dropzone = null; class DropzoneWrapper extends Component { state = { isClient: false, }; componentDidMount = () => { Dropzone = require("react-dropzone").default; this.setState({ isClient: true }); }; render() { return Dropzone ? {this.props.children} : null; } } const data = [ { value: "Sanksi Administratif Sedang", // label_sanksi: "- Sanksi Administratif ringan" }, { sanksi: "Penghentian Pembinaan PT", value: "Penghentian Pembinaan PT", label_sanksi: "- Sanksi Administratif Berat", }, { sanksi: "Pencabutan Izin Perguruan Tinggi Swasta", value: "Pencabutan Izin Perguruan Tinggi Swasta", label_sanksi: "- Sanksi Administratif Berat", }, { sanksi: "Penghentian Pembinaan Program Studi", value: "Penghentian Pembinaan Program Studi", label_sanksi: "- Sanksi Administratif Berat", }, { sanksi: "Pencabutan Izin Program Studi", value: "Pencabutan Izin Program Studi", label_sanksi: "- Sanksi Administratif Berat", }, { sanksi: "Pembubaran Perguruan Tinggi Negeri", value: "Pembubaran Perguruan Tinggi Negeri", label_sanksi: "- Sanksi Administratif Berat", }, ]; const listSanksi = data.map((d) => ({ value: d.value, label: d.sanksi, label_sanksi: d.label_sanksi, })); const formatOptionLabel = ({ value, sanksi, label_sanksi }) => (
{value}
{label_sanksi}
); export class UploadSurat extends Component { constructor(props) { super(props); const tmt_awal = new Date(); this.state = { files: [], nomorSanksi: "", keterangan: "", listSanksi: "", startDay: tmt_awal, maxDay: "", isiTmt: "", awalsanksi: "", akhirsanksi: "", tmtCheck: false, }; } onDrop = (files) => { this.setState({ files: files.map((file) => Object.assign(file, { preview: URL.createObjectURL(file), }) ), stat: "Added " + files.length + " file(s)", }); this.props.setUploadSuratSanksi(this.state); }; uploadFiles = (e) => { e.preventDefault(); e.stopPropagation(); this.setState({ stat: this.state.files.length ? "Dropzone ready to upload " + this.state.files.length + " file(s)" : "No files added.", }); this.props.setUploadSuratSanksi(this.state); }; clearFiles = (e) => { e.preventDefault(); e.stopPropagation(); this.setState({ stat: this.state.files.length ? this.state.files.length + " file(s) cleared." : "No files to clear.", }); this.setState({ files: [], }); this.props.setUploadSuratSanksi(this.state); }; toRingkasan = () => { this.props.setUploadSuratSanksi(this.state); }; setNomorSanksi = (e) => { this.setState({ nomorSanksi: e.target.value }, this.toRingkasan); }; setKeterangan = (e) => { this.setState({ keterangan: e.target.value }, this.toRingkasan); }; setListSanksi = (ls) => { this.setState({ listSanksi: ls.target.value }, this.toRingkasan); }; handleChangeListSanksi = (listSanksi) => { this.setState({ listSanksi }, this.toRingkasan); }; handleTmtCheck = () => { this.setState({ tmtCheck: !this.state.tmtCheck }, this.toRingkasan); } render() { const { files } = this.state; const thumbs = files.map((file, index) => (
{index + 1}. {file.name}
)); return (
{this.state.tmtCheck && ( { this.setState({ awalsanksi }, this.toRingkasan) }} dateFormat="dd/MM/yyyy" maxDate={this.state.startDay} placeholderText="Isi Tanggal" locale={id} /> )} {!this.state.tmtCheck && ( { this.setState({ awalsanksi }, this.toRingkasan) }} dateFormat="dd/MM/yyyy" maxDate={this.state.startDay} placeholderText="Dari Tanggal" locale={id} /> { this.setState({ akhirsanksi }, this.toRingkasan) }} dateFormat="dd/MM/yyyy" minDate={this.state.awalsanksi} maxDate={addMonths(new Date(this.state.awalsanksi), 6)} placeholderText="Sampai tanggal" locale={id} /> )} {!this.state.tmtCheck && (
{this.state.awalsanksi ? moment(this.state.awalsanksi).format("DD-MM-YYYY") : "-"} hingga {this.state.akhirsanksi ? moment(this.state.akhirsanksi).format("DD-MM-YYYY") : "-"}
)} {!this.state.tmtCheck && (
{this.state.akhirsanksi ? moment(this.state.akhirsanksi).diff(this.state.awalsanksi, 'month') : "-"} bulan
)}
{this.state.files.length > 0 ? ( {thumbs} ) : (
Klik untuk upload dokumen
)}
); }}

Ukuran setiap dokumen maksimal 15mb

); } } export default UploadSurat;