| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | import React, { Component } from "react";import Link from "next/link";import { getOneSanksi } from "@/actions/sanksi";import Header from "@/components/Main/Header";import DetailPT from "@/components/Main/DetailPT";import DetailSanksi from "@/components/Main/DetailSanksi";import ContentWrapper from "@/components/Layout/ContentWrapper";import Scrollable from "@/components/Common/Scrollable";import { Row, Col, Card, CardBody, FormGroup, Button } from "reactstrap";import { connect } from "react-redux";import Loader from "@/components/Common/Loader";import { API_URL } from "@/env";class DetailJawabanPencabutanSanksi extends Component {	constructor(props) {		super(props);		this.state = {			sanksi: {},			pt: null,		};	}	static getInitialProps = ({ query }) => ({ query });	componentDidMount = async () => {		const { token, query } = this.props;		const sanksi = await getOneSanksi(token, query.id);		this.setState({ sanksi, pt: sanksi.data.laporan.pt });	};	render() {		const { sanksi, pt } = this.state;		const jawaban = sanksi.data?.jawaban.cabut_sanksi || null;		return (			<ContentWrapper unwrap>				{pt && <Header data={pt} />}				<div className="p-3">					<div className="content-heading">						<div>Jawaban Permohonan Pencabutan Sanksi</div>						<div className="ml-auto">							<Link href="/pt/jawaban-pencabutan-sanksi">								<button className="btn btn-sm btn-secondary text-sm">< back</button>							</Link>						</div>					</div>					<Row>						{sanksi.data ? (							<Col xl="9">								<Card className="card-default">									<CardBody>										<Row>											<Col lg={12}>												<DetailSanksi data={sanksi.data} />												<p className="lead bb">Jawaban Permohonan Pencabutan Sanksi</p>												<form className="form-horizontal">													<FormGroup>														<label md="4">Jawaban:</label>														<div md="8">															<h3>{jawaban && jawaban.status}</h3>														</div>													</FormGroup>													{jawaban && jawaban.keterangan && (														<FormGroup>															<label md="4">Keterangan:</label>															<div md="8">																<p>{jawaban.keterangan}</p>															</div>														</FormGroup>													)}													<FormGroup>														<label md="4">Dokumen Jawaban:</label>														<div md="8">															<Scrollable height="120px" className="list-group">																<table className="table table-bordered bg-transparent">																	<tbody>																		{jawaban &&																			jawaban.dokumen.map((e) => (																				<tr>																					<td>																						<em className="fa-lg far fa-file-code"></em>																					</td>																					<td>																						<a className="text-muted" href={e.path} target="_blank" download={e.judul}>																							{e.judul}																						</a>																					</td>																				</tr>																			))}																	</tbody>																</table>															</Scrollable>														</div>													</FormGroup>												</form>												{jawaban && jawaban.status === "Rekomendasi Perbaikan" && (													<Link														href={{															pathname: "/pt/dokumen-perbaikan/detail",															query: { id: sanksi.data._id },														}}													>														<Button color="primary">Perbaiki Dokumen</Button>													</Link>												)}											</Col>										</Row>									</CardBody>								</Card>							</Col>						) : (							<Loader />						)}						<Col xl="3">{pt && <DetailPT data={pt} />}</Col>					</Row>				</div>			</ContentWrapper>		);	}}const mapStateToProps = (state) => ({ user: state.user, token: state.token });export default connect(mapStateToProps)(DetailJawabanPencabutanSanksi);
 |