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";
var pembina = [];
const selectInstanceId = 1;
class Search extends Component {
state = {
selectedOptionMulti: [],
data: [],
pembina: [],
loading: 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 = (e, PT_ID) => {
e.preventDefault();
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 });
};
handleApplyClick = () => {
this.setState({ loading: true });
this.fetchData();
this.setState({ loading: false });
if (this.state.data && this.state.data.length) {
this.renderTableData();
}
};
handleSearchClick = () => {
this.setState({ loading: true });
this.fetchData();
this.setState({ loading: false });
if (this.state.data.length) {
this.renderTableData();
}
};
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} }
|
);
})
);
}
render() {
const { selectedOptionMulti, pembina } = this.state;
return (
Pelaporan
Pilih Perguruan Tinggi
Search Results
| No. |
Description |
{this.renderTableData()}
{this.props.user.role.id === 2021 ? (
""
) : (
Filters
)}
);
}
}
const mapStateToProps = (state) => ({ user: state.user, token: state.token });
export default connect(mapStateToProps)(Search);