| 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;
 |