| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 | 
							- import React, { Component } from "react";
 
- import ContentWrapper from "@/components/Layout/ContentWrapper";
 
- import { Container, Progress } from "reactstrap";
 
- import { getLog2 } from "@/actions/log";
 
- import { connect } from "react-redux";
 
- import moment from "moment";
 
- let ReactDataGrid = null;
 
- class TableRiwayat extends Component {
 
- 	state = {
 
- 		dataGridReady: false,
 
- 		dataRiwayat: {},
 
- 		rows: [],
 
- 		originalRows: null,
 
- 	};
 
- 	constructor(props, context) {
 
- 		super(props, context);
 
- 		this._columns = [
 
- 			{
 
- 				key: "timelapse",
 
- 				name: "Timelapse",
 
- 				sortable: true,
 
- 			},
 
- 			{
 
- 				key: "username",
 
- 				name: "Username",
 
- 				sortable: true,
 
- 			},
 
- 			{
 
- 				key: "ipv4",
 
- 				name: "IPv4",
 
- 				sortable: true,
 
- 			},
 
- 			{
 
- 				key: "menu",
 
- 				name: "Menu",
 
- 				sortable: true,
 
- 			},
 
- 			{
 
- 				key: "deskripsi",
 
- 				name: "Deskripsi",
 
- 				sortable: true,
 
- 			},
 
- 		];
 
- 	}
 
- 	async componentDidMount() {
 
- 		const { token } = this.props;
 
- 		const dataRiwayat = await getLog2(token);
 
- 		this.setState({ dataRiwayat });
 
- 		ReactDataGrid = require("react-data-grid");
 
- 		this.setState({
 
- 			dataGridReady: true,
 
- 		});
 
- 		let originalRows = this.createRows(1000);
 
- 		let rows = originalRows.slice(0);
 
- 		this.setState({ rows, originalRows });
 
- 	}
 
- 	getRandomDate = (start, end) => {
 
- 		return new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime())).toLocaleDateString();
 
- 	};
 
- 	createRows = () => {
 
- 		let rows = [];
 
- 		const { dataRiwayat } = this.state;
 
- 		if (dataRiwayat) {
 
- 			dataRiwayat.data.forEach((e) => {
 
- 				rows.push({
 
- 					deskripsi: e.aktivitas,
 
- 					complete: Math.min(100, Math.round(Math.random() * 110)),
 
- 					ipv4: e.ipv4,
 
- 					menu: e.menu || "-",
 
- 					username: e.user.nama,
 
- 					timelapse: moment(e.createdAt).toLocaleString(),
 
- 					completeDate: this.getRandomDate(new Date(), new Date(2021, 0, 1)),
 
- 				});
 
- 			});
 
- 		}
 
- 		return rows;
 
- 	};
 
- 	rowGetter = (i) => this.state.rows[i];
 
- 	handleGridSort = (sortColumn, sortDirection) => {
 
- 		const comparer = (a, b) => {
 
- 			if (sortDirection === "ASC") {
 
- 				return a[sortColumn] > b[sortColumn] ? 1 : -1;
 
- 			} else if (sortDirection === "DESC") {
 
- 				return a[sortColumn] < b[sortColumn] ? 1 : -1;
 
- 			}
 
- 		};
 
- 		const rows = sortDirection === "NONE" ? this.state.originalRows.slice(0) : this.state.rows.sort(comparer);
 
- 		this.setState({ rows });
 
- 	};
 
- 	render() {
 
- 		return (
 
- 			<ContentWrapper>
 
- 				<Container fluid>
 
- 					{this.state.dataGridReady && (
 
- 						<ReactDataGrid
 
- 							onGridSort={this.handleGridSort}
 
- 							columns={this._columns}
 
- 							rowGetter={this.rowGetter}
 
- 							rowsCount={this.state.rows.length}
 
- 						/>
 
- 					)}
 
- 				</Container>
 
- 				<div align="center">
 
- 					<span>Riwayat Pengguna</span>
 
- 				</div>
 
- 			</ContentWrapper>
 
- 		);
 
- 	}
 
- }
 
- const mapStateToProps = (state) => ({ token: state.token });
 
- export default connect(mapStateToProps)(TableRiwayat);
 
 
  |