TableLaporan.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import Datatable from "@/components/Tables/Datatable";
  2. import { Button } from "reactstrap";
  3. import Link from "next/link";
  4. import moment from "moment";
  5. function TableLaporan({ listData, to, linkName, status = false, noBy = false }) {
  6. return (
  7. <div className="card b">
  8. <div className="card-body">
  9. {listData && (
  10. <Datatable options={{ responsive: false }}>
  11. <table className="table w-100">
  12. <thead>
  13. <tr>
  14. <th>No.Laporan</th>
  15. <th>Deskripsi Laporan</th>
  16. {status ? <th>Status</th> : ""}
  17. {!noBy && <th>Dibuat Oleh</th>}
  18. <th>Created</th>
  19. <th></th>
  20. </tr>
  21. </thead>
  22. <tbody>
  23. {listData.map((data) => {
  24. return (
  25. <tr key={data._id}>
  26. <td>{data.no_laporan}</td>
  27. <td className="text-nowrap">
  28. <div className="media align-items-center">
  29. <div className="media-body d-flex">
  30. <div>
  31. <h4 className="m-0">{data.pt.nama}</h4>
  32. <p>{data.keterangan.length > 35 ? data.keterangan.substring(0, 35) + "..." : data.keterangan}</p>
  33. </div>
  34. </div>
  35. </div>
  36. </td>
  37. {status ? (
  38. <td>
  39. <div className="badge badge-info">{data.role_data === "dikti" ? "Ditindaklanjuti DIKTI" : "Ditindaklanjuti LLDIKTI"}</div>
  40. </td>
  41. ) : (
  42. ""
  43. )}
  44. {!noBy && <td>{data.user.isPrivate ? "" : data.user.nama}</td>}
  45. <td>{moment(data.createdAt).fromNow()}</td>
  46. <td>
  47. <div className="ml-auto">
  48. <Link
  49. href={{
  50. pathname: to,
  51. query: { id: data._id },
  52. }}
  53. >
  54. <Button color="primary" size="sm">
  55. {linkName}
  56. </Button>
  57. </Link>
  58. </div>
  59. </td>
  60. </tr>
  61. );
  62. })}
  63. </tbody>
  64. </table>
  65. </Datatable>
  66. )}
  67. </div>
  68. </div>
  69. );
  70. }
  71. export default TableLaporan;