| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import React, { Component } from "react";
- import ContentWrapper from "@/components/Layout/ContentWrapper";
- import { Container, Progress } from "reactstrap";
- let ReactDataGrid = null;
- class TableRiwayat extends Component {
- state = {
- dataGridReady: false,
- };
- constructor(props, context) {
- super(props, context);
- this._columns = [
- {
- key: "timelapse",
- name: "Timelapse",
- sortable: true,
- },
- {
- key: "username",
- name: "Username",
- sortable: true,
- },
- {
- key: "menu",
- name: "Menu",
- sortable: true,
- },
- {
- key: "deskripsi",
- name: "Deskripsi",
- sortable: true,
- },
- ];
- let originalRows = this.createRows(1000);
- let rows = originalRows.slice(0);
- this.state = { originalRows, rows };
- }
- componentDidMount() {
- ReactDataGrid = require("react-data-grid");
- this.setState({
- dataGridReady: true,
- });
- }
- getRandomDate = (start, end) => {
- return new Date(
- start.getTime() + Math.random() * (end.getTime() - start.getTime())
- ).toLocaleDateString();
- };
- createRows = () => {
- let rows = [];
- for (let i = 1; i < 11; i++) {
- rows.push({
- deskripsi: "deskripsi di sini",
- complete: Math.min(100, Math.round(Math.random() * 110)),
- menu: ["Pelaporan", "Login", "Penjadwalan", "Sanksi"][
- Math.floor(Math.random() * 3 + 1)
- ],
- username: ["sugiyanto", "sugiyanti", "andi", "yazid"][
- Math.floor(Math.random() * 3 + 1)
- ],
- timelapse: this.getRandomDate(new Date(2018, 3, 1), new Date()),
- 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}
- // minHeight={0}
- />
- )}
- </Container>
- <div align="center">
- <span>Riwayat Pengguna</span>
- </div>
- </ContentWrapper>
- );
- }
- }
- export default TableRiwayat;
|