detail.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import React, { Component } from "react";
  2. import Link from "next/link";
  3. import { getSanksi } from "@/actions/sanksi";
  4. import Header from "@/components/Main/Header";
  5. import DetailPT from "@/components/Main/DetailPT";
  6. import DetailSanksi from "@/components/Main/DetailSanksi";
  7. import ContentWrapper from "@/components/Layout/ContentWrapper";
  8. import Scrollable from "@/components/Common/Scrollable";
  9. import { Row, Col, Card, CardBody, FormGroup } from "reactstrap";
  10. class DetailJawabanPencabutanSanksi extends Component {
  11. static async getInitialProps({ query }) {
  12. const { noSanksi } = query;
  13. const sanksi = await getSanksi({ noSanksi, ptId: "0BCE4DB7-B207-445D-8D03-0C54B7688252" });
  14. return { query, sanksi };
  15. }
  16. render() {
  17. const { sanksi } = this.props;
  18. const { jawaban } = sanksi.data[0].sanksi.cabut_sanksi;
  19. return (
  20. <ContentWrapper unwrap>
  21. <Header />
  22. <div className="p-3">
  23. <div className="content-heading">
  24. <div>Jawaban Permohonan Pencabutan Sanksi</div>
  25. <div className="ml-auto">
  26. <Link href="/app/pt/jawaban-pencabutan-sanksi">
  27. <button className="btn btn-sm btn-secondary text-sm">&lt; back</button>
  28. </Link>
  29. </div>
  30. </div>
  31. <Row>
  32. <Col xl="9">
  33. <Card className="card-default">
  34. <CardBody>
  35. <Row>
  36. <Col lg={12}>
  37. <DetailSanksi data={sanksi.data[0]} />
  38. <p className="lead bb">Jawaban Permohonan Pencabutan Sanksi</p>
  39. <form className="form-horizontal">
  40. <FormGroup>
  41. <label md="4">Jawaban:</label>
  42. <div md="8">
  43. <h3>{jawaban.status}</h3>
  44. </div>
  45. </FormGroup>
  46. <FormGroup>
  47. <label md="4">Keterangan:</label>
  48. <div md="8">
  49. <p>{jawaban.description}</p>
  50. </div>
  51. </FormGroup>
  52. <FormGroup>
  53. <label md="4">Dokumen Jawaban:</label>
  54. <div md="8">
  55. <Scrollable height="120px" className="list-group">
  56. <table className="table table-bordered bg-transparent">
  57. <tbody>
  58. {jawaban.files.map((e) => (
  59. <tr>
  60. <td>
  61. <em className="fa-lg far fa-file-code"></em>
  62. </td>
  63. <td>
  64. <a className="text-muted" href={`data:${e.type};base64, ${Buffer.from(e.data).toString("base64")}`} download={e.name}>
  65. {e.name}
  66. </a>
  67. </td>
  68. </tr>
  69. ))}
  70. </tbody>
  71. </table>
  72. </Scrollable>
  73. </div>
  74. </FormGroup>
  75. </form>
  76. </Col>
  77. </Row>
  78. </CardBody>
  79. </Card>
  80. </Col>
  81. <Col xl="3">
  82. <DetailPT />
  83. </Col>
  84. </Row>
  85. </div>
  86. </ContentWrapper>
  87. );
  88. }
  89. }
  90. export default DetailJawabanPencabutanSanksi;