| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | import React, { Component } from "react";import ContentWrapper from "@/components/Layout/ContentWrapper";import { Row, Col } from "reactstrap";import { getPelaporan } from "@/actions/pelaporan";import { getGraph, getExcel } from "@/actions/graph";import CaseProgress from "@/components/PelaporanTuntas/CaseProgress";import TableLaporan from "@/components/PelaporanTuntas/TableLaporan";import { connect } from "react-redux";import Loader from "@/components/Common/Loader";import Link from "next/link";import Button from "reactstrap/lib/Button";import Router from "next/router";class PelaporanTuntas extends Component {    constructor(props) {        super(props);        this.state = {            pelaporan: {},            graph: {},            tahun: new Date().getFullYear(),        };    }    componentDidMount = async () => {        const { token } = this.props;        const pelaporan = await getPelaporan(token, { jadwal: true, aktif: false });        const graph = await getGraph(this.props.token, { evaluasi: true, listJadwal: true, aktif: false });        this.setState({ pelaporan, graph });    };    nextButton = async () => {        const tahun = this.state.tahun + 1;        const graph = await getGraph(this.props.token, { evaluasi: true, listJadwal: true, tahun });        this.setState({ graph, tahun });    };    prevButton = async () => {        const tahun = this.state.tahun - 1;        const graph = await getGraph(this.props.token, { evaluasi: true, listJadwal: true, tahun });        this.setState({ graph, tahun });    };    shouldComponentUpdate = (prevProps, prevState) => {        if (prevState.graph !== this.state.graph) return true;    };    excel = () => {        const url = getExcel(this.props.token, "Laporan", { tahun: this.state.tahun });        Router.push(url);    };    render() {        const { pelaporan, graph } = this.state;        return (            <ContentWrapper>                <div className="content-heading">                    <span className="font-color-white">                        Pelaporan Tuntas                    </span>                </div>                <Row>                    <Col lg="4">{graph?.data ? <CaseProgress data={graph.data} nextButton={this.nextButton} prevButton={this.prevButton} tahun={this.state.tahun} excel={this.excel} /> : <Loader />}</Col>                    <Col lg="8">{pelaporan?.data ? <TableLaporan status noBy listData={pelaporan.data} to="/app/tuntas/detail" linkName="Detail" /> : <Loader />}</Col>                </Row>            </ContentWrapper>        );    }}const mapStateToProps = (state) => ({ user: state.user, token: state.token });export default connect(mapStateToProps)(PelaporanTuntas);
 |