// SPDX-License-Identifier: AGPL-3.0
import React from 'react';
-import { Table, TableBody, TableRow, TableCell, TableHead, TableSortLabel, StyleRulesCallback, Theme, WithStyles, withStyles, IconButton, CircularProgress } from '@material-ui/core';
+import { Table, TableBody, TableRow, TableCell, TableHead, TableSortLabel, StyleRulesCallback, Theme, WithStyles, withStyles, IconButton } from '@material-ui/core';
import classnames from 'classnames';
import { DataColumn, SortDirection } from './data-column';
import { DataTableDefaultView } from '../data-table-default-view/data-table-default-view';
import { DataTableFilters } from '../data-table-filters/data-table-filters-tree';
import { DataTableFiltersPopover } from '../data-table-filters/data-table-filters-popover';
import { countNodes } from 'models/tree';
+import { PendingIcon } from 'components/icon/icon';
import { SvgIconProps } from '@material-ui/core/SvgIcon';
import ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';
background: theme.palette.background.paper
},
loader: {
- top: '50%',
left: '50%',
- marginTop: '-15px',
- marginLeft: '-15px',
+ marginLeft: '-84px',
position: 'absolute'
},
noItemsInfo: {
</TableRow>
</TableHead>
<TableBody className={classes.tableBody}>
- {
- this.props.working ?
- <div>
- <CircularProgress className={classes.loader} size={30} />
- </div> :
- items.map(this.renderBodyRow)
- }
+ { this.props.working !== undefined && !this.props.working && items.map(this.renderBodyRow) }
</TableBody>
</Table>
+ { this.props.working &&
+ <div className={classes.loader}>
+ <DataTableDefaultView
+ icon={PendingIcon}
+ messages={['Loading data, please wait.']} />
+ </div> }
{items.length === 0 && this.props.working !== undefined && !this.props.working && this.renderNoItemsPlaceholder()}
</div>
</div>;