detail.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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={6}>
  37. <DetailSanksi data={sanksi.data[0]} />
  38. </Col>
  39. <Col lg={6}>
  40. <p className="lead bb">Jawaban Permohonan Pencabutan Sanksi</p>
  41. <form className="form-horizontal">
  42. <FormGroup>
  43. <label md="4">Jawaban:</label>
  44. <div md="8">
  45. <h3>{jawaban.status}</h3>
  46. </div>
  47. </FormGroup>
  48. <FormGroup>
  49. <label md="4">Keterangan:</label>
  50. <div md="8">
  51. <p>{jawaban.description}</p>
  52. </div>
  53. </FormGroup>
  54. <FormGroup>
  55. <label md="4">Dokumen Jawaban:</label>
  56. <div md="8">
  57. <Scrollable height="120px" className="list-group">
  58. <table className="table table-bordered bg-transparent">
  59. <tbody>
  60. {jawaban.files.map((e) => (
  61. <tr>
  62. <td>
  63. <em className="fa-lg far fa-file-code"></em>
  64. </td>
  65. <td>
  66. <a className="text-muted" href={`data:${e.type};base64, ${Buffer.from(e.data).toString("base64")}`} download={e.name}>
  67. {e.name}
  68. </a>
  69. </td>
  70. </tr>
  71. ))}
  72. </tbody>
  73. </table>
  74. </Scrollable>
  75. </div>
  76. </FormGroup>
  77. </form>
  78. </Col>
  79. </Row>
  80. </CardBody>
  81. </Card>
  82. </Col>
  83. <Col xl="3">
  84. <DetailPT />
  85. </Col>
  86. </Row>
  87. </div>
  88. </ContentWrapper>
  89. );
  90. }
  91. }
  92. export default DetailJawabanPencabutanSanksi;