|
- // material-ui
- import {
- DataGrid,
- } from "@mui/x-data-grid";
- import {useEffect, useState} from "react";
- import axios from "axios";
- import {apiPath} from "../../auth/utils";
- //import LoadingComponent from "../extra-pages/LoadingComponent";
- import * as React from "react";
- import {GET_AUTH_LIST} from "../../utils/ApiPathConst";
-
- import Loadable from 'components/Loadable';
- import { lazy } from 'react';
- const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent')));
-
- // ==============================|| EVENT TABLE ||============================== //
-
- export default function UserAuthTable({setSelectedRow, userAuth}) {
- const [authData, setAuthData] = useState([]);
- const [onReady, setOnReady] = useState(false);
- const [currentSelectedRow, setCurrentSelectedRow] = useState(userAuth);
-
- useEffect(() => {
- axios.get(`${apiPath}${GET_AUTH_LIST}`)
- .then((response) => {
- if (response.status === 200) {
- setAuthData(response.data.records);
- }
- })
- .catch(error => {
- console.log(error);
- return false;
- });
- }, []);
-
- useEffect(() => {
- //if state data are ready and assign to different field
- if (authData.length > 0) {
- setOnReady(true);
- }
- }, [authData]);
-
- const columns = [
- {
- id: 'module',
- field: 'module',
- headerName: 'Module',
- flex: 1,
- },
- {
- id: 'authority',
- field: 'name',
- headerName: 'Authority',
- flex: 2,
- },
- ];
-
- return (
- !onReady ?
- <LoadingComponent/>
- :
- <div style={{height: '100%', width: '100%'}}>
- <DataGrid
- rows={authData}
- columns={columns}
- editMode="row"
- initialState={{
- pagination: {
- paginationModel: {page: 0, pageSize: 20},
- },
- }}
- pageSizeOptions={[10, 20, 30]}
- checkboxSelection
- rowSelectionModel={currentSelectedRow}
- onRowSelectionModelChange={(ids) => {
- console.log(ids);
- setSelectedRow(ids);
- setCurrentSelectedRow(ids);
- }}
- autoHeight
- />
- </div>
- );
- }
|