import React, { Component } from "react";
import Router from "next/router";
import ContentWrapper from "@/components/Layout/ContentWrapper";
import { Row, Col, Button, Table, Pagination, PaginationItem, PaginationLink } from "reactstrap";
import Link from "next/link";
import { getPT, getPembina } from "@/actions/PT";
import Select from "react-select";
import "react-datetime/css/react-datetime.css";
import { connect } from "react-redux";
import Loader from "@/components/Common/Loader";
import { createLog } from "@/actions/log";
import { getCsrf } from "../../../actions/security";
var pembina = [];
const selectInstanceId = 1;
class Search extends Component {
state = {
selectedOptionMulti: [],
data: [],
pembina: [],
loading: false,
noData: false,
};
componentDidMount = async () => {
const { user, token } = this.props;
if (user.role.id === 2020) {
const dataPembina = await getPembina(token);
this.setState({ pembina: dataPembina.data });
}
};
optionsPembina = (pembina) => {
return pembina.map((e) => ({ value: e.id, label: e.nama, className: "State-ACT" }));
};
handleChangeSelectMulti = (selectedOptionMulti) => {
this.setState({ selectedOptionMulti });
};
renderInputGroup = (props) => {
return (
);
};
handleClick = async (e, PT_ID, pt_name) => {
const getTokenCsrf = await getCsrf();
const _csrf = getTokenCsrf.token;
e.preventDefault();
const { token } = this.props;
await createLog(token, { aktivitas: `Mencari ${pt_name} untuk Pembuatan Laporan`, menu: "Pelaporan", _csrf: _csrf });
Router.push({
pathname: "/app/pelaporan/new",
query: { ptId: PT_ID },
});
};
fetchData = async () => {
const pembina = this.props.user.role.id === 2021 ? this.props.user.lembaga.id : this.state.selectedOptionMulti?.map((e) => e.value).join(",");
const searchValue = document.getElementById("searchInput").value;
const jsonData = await getPT(this.props.token, { search: searchValue, pembina });
this.setState({ data: jsonData.data });
};
renderTableData() {
return (
!this.state.loading &&
this.state.data &&
this.state.data.map((pt, index) => {
return (
|
|
{pt.nama}
{pt.sk_pendirian} - {pt.website} - {pt.email}
{pt.alamat.jalan}
{this.props.user.role.id === 2021 ? "" : Pembina: {pt.pembina.nama} }
|
);
})
);
}
handleApplyClick = () => {
this.setState({ loading: true });
this.fetchData();
this.setState({ loading: false });
if (this.state.data && this.state.data.length) {
this.renderTableData();
this.setState({ noData: true });
}
};
handleSearchClick = () => {
this.setState({ loading: true });
this.fetchData();
this.setState({ loading: false });
if (this.state.data.length) {
this.renderTableData();
this.setState({ noData: true });
}
};
render() {
const { selectedOptionMulti, pembina } = this.state;
return (
Pelaporan
Pilih Perguruan Tinggi
{this.state.data.length ? (
Jumlah Pencarian : {this.state.data.length}
) : (
Search results
)}
| No. |
Description |
{this.renderTableData()}
{!this.state.data.length > 0 && this.state.noData && (
Data tidak ditemukan
)}
{this.props.user.role.id === 2021 ? (
""
) : (
Filters
)}
);
}
}
const mapStateToProps = (state) => ({ user: state.user, token: state.token });
export default connect(mapStateToProps)(Search);