import PropTypes from 'prop-types'; import React, { Component } from 'react'; import FieldSet from 'Components/FieldSet'; import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import ProgressBar from 'Components/ProgressBar'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import Table from 'Components/Table/Table'; import TableBody from 'Components/Table/TableBody'; import TableRow from 'Components/Table/TableRow'; import { kinds, sizes } from 'Helpers/Props'; import formatBytes from 'Utilities/Number/formatBytes'; import translate from 'Utilities/String/translate'; import styles from './DiskSpace.css'; const columns = [ { name: 'path', label: 'Location', isVisible: true }, { name: 'freeSpace', label: 'Free Space', isVisible: true }, { name: 'totalSpace', label: 'Total Space', isVisible: true }, { name: 'progress', isVisible: true } ]; class DiskSpace extends Component { // // Render render() { const { isFetching, items } = this.props; return (
{ isFetching && } { !isFetching && { items.map((item) => { const { freeSpace, totalSpace } = item; const diskUsage = Math.round(100 - freeSpace / totalSpace * 100); let diskUsageKind = kinds.PRIMARY; if (diskUsage > 90) { diskUsageKind = kinds.DANGER; } else if (diskUsage > 80) { diskUsageKind = kinds.WARNING; } return ( {item.path} { item.label && ` (${item.label})` } {formatBytes(freeSpace)} {formatBytes(totalSpace)} = 12} text={`${diskUsage}%`} /> ); }) }
}
); } } DiskSpace.propTypes = { isFetching: PropTypes.bool.isRequired, items: PropTypes.array.isRequired }; export default DiskSpace;