| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- import Datatable from "@/components/Tables/Datatable";
- import { Button, Dropdown, DropdownToggle, DropdownMenu, DropdownItem, Modal, ModalBody, ModalFooter, ModalHeader } from "reactstrap";
- import Link from "next/link";
- import moment from "moment";
- import { ENV } from '../../env.js';
- import CopyToClipboard from "react-copy-to-clipboard";
- import { useState } from "react";
- import { deleteCatatan } from "../../actions/catatan.js";
- import { toast } from "react-toastify";
- import { useSelector } from "react-redux";
- import Router from "next/router";
- function TableRiwayatCatatan({ listData, query, editFilePage, newFilePage, readOnly, role }) {
- const [dropdownState, setDropdownState] = useState(false);
- const [seledtedID, setSelectedID] = useState("")
- const [modalIsOpen, setModalIsOpen] = useState(false)
- const token = useSelector((state) => state.token)
- const toggleDD = (dd) => {
- setDropdownState(prevState => ({
- ...prevState,
- [dd]: !prevState[dd]
- }));
- };
- // const deletedcatatan = async(id)=>{
- // const toastid = toast.loading("Please wait...");
- // const added = await deleteCatatan(id);
- // if (!added) {
- // toast.update(toastid, { render: "Error", type: "error", isLoading: false, autoClose: true, closeButton: true });
- // } else {
- // toast.update(toastid, { render: "Success", type: "success", isLoading: false, autoClose: true, closeButton: true });
- // // Router.push(`/app/perpanjangan-sanksi/detail?id=${this.state.catatan.sanksi_id}`);
- // }
- // }
- const setmodal = (id) => {
- setModalIsOpen(!modalIsOpen)
- setSelectedID(id)
- }
- return (
- <div className="card b ">
- <Modal isOpen={modalIsOpen} >
- <ModalBody>Apakah Anda yakin akan menghapus catatan ini?</ModalBody>
- <ModalFooter>
- <Button color className="btn-login" onClick={async () => {
- if (role === 2024) {
- Swal.fire({
- icon: 'error',
- title: 'Oops...',
- html: 'Maaf anda tidak memiliki akses untuk menyelesaikan<p> proses ini.</p>',
- confirmButtonColor: "#3e3a8e",
- confirmButtonText: 'Oke'
- })
- } else {
- await toast.promise(deleteCatatan(token, seledtedID), {
- pending: "Loading",
- success: "Success",
- error: "Error",
- });
- Router.push(`/app/perpanjangan-sanksi/detail?id=${query.id}`);
- setModalIsOpen(false)
- }
- }}>
- <span className="font-color-white">Ya</span>
- </Button>
- <Button color className="btn-v2" onClick={setmodal}>
- Tidak
- </Button>
- </ModalFooter>
- </Modal>
- <div className=" card-header">
- <div className=" card-title">Riwayat Catatan</div>
- </div>
- <div className=" card-body">
- <div className="margin-right-auto float-right">
- <Link
- href={{
- pathname: newFilePage,
- query: { id: query?.id },
- }}
- >
- <Button className="btn-login" color>
- <img className="icon-laporan-baru" src="/static/img/icon-laporan-baru.png"></img>
- <span className="font-color-white m-2">
- Tambah Catatan
- </span>
- </Button>
- </Link>
- </div>
- <Datatable options={{
- responsive: false, ordering: true,
- // paging: false,
- searching: false,
- // ordering: false,
- // info: false,
- }}>
- <table className="table w-100" data-order='[[0, "desc"]]'>
- <thead>
- <tr>
- <th>Tanggal dibuat</th>
- <th>Nama File</th>
- <th>Terakhir diedit</th>
- <th>Aksi</th>
- </tr>
- </thead>
- <tbody>
- {listData?.length
- ? listData.map((data, i) => (
- <tr>
- <td>
- <p style={{ display: "none" }}>{data.createdAt}</p>
- {moment(data.createdAt).format("D MMMM YYYY")}
- </td>
- <td>
- {data.judul}
- </td>
- <td>{moment(data.updatedAt).format("D MMMM YYYY")}</td>
- <td
- // style={{ width: "30%" }}
- >
- <span className="">
- <Dropdown isOpen={dropdownState[`ddSplit${i}`]}
- toggle={() => toggleDD(`ddSplit${i}`)} >
- <DropdownToggle
- data-toggle="dropdown"
- tag="span"
- >
- <Button color className="btn-v3">
- Info
- </Button>
- {/* <em className="fas fa-ellipsis-v" /> */}
- </DropdownToggle>
- <DropdownMenu>
- {ENV === "local" &&
- <CopyToClipboard
- text={`http://localhost:3000/signature/letter/${data?._id}`}
- options={{ asHtml: true }}
- ><DropdownItem>
- Link Dokumen Berita Acara
- </DropdownItem>
- </CopyToClipboard>
- }
- {ENV === "development" &&
- <CopyToClipboard
- text={`http://dev.sidali.kemdikbud.go.id/signature/letter/${data?._id}`}
- options={{ asHtml: true }}
- ><DropdownItem>
- Link Dokumen Berita Acara
- </DropdownItem>
- </CopyToClipboard>
- }
- <Link
- href={{
- pathname: readOnly,
- query: { id: data?._id },
- }}
- >
- <DropdownItem>
- <span className=" font-color-black">Lihat</span>
- </DropdownItem>
- </Link>
- <Link
- href={{
- pathname: editFilePage,
- query: { id: data?._id },
- }}
- ><DropdownItem>
- <span className=" font-color-black">Edit</span>
- </DropdownItem>
- </Link>
- <DropdownItem onClick={() => { setmodal(data._id) }}>
- <span >
- Hapus
- </span>
- </DropdownItem>
- </DropdownMenu>
- </Dropdown>
- </span>
- </td>
- </tr>
- )) : (
- ""
- )}
- </tbody>
- </table>
- </Datatable>
- </div>
- </div>
- )
- }
- export default TableRiwayatCatatan;
|