import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { I18n, i18nMark } from '@lingui/react'; import { t } from '@lingui/macro'; import { Button, Checkbox, Level, LevelItem, Toolbar, ToolbarGroup, ToolbarItem, Tooltip, } from '@patternfly/react-core'; import { TrashAltIcon, PlusIcon, } from '@patternfly/react-icons'; import { Link } from 'react-router-dom'; import ExpandCollapse from '../ExpandCollapse'; import Search from '../Search'; import Sort from '../Sort'; import VerticalSeparator from '../VerticalSeparator'; class DataListToolbar extends React.Component { render () { const { add, addBtnToolTipContent, addUrl, columns, deleteTooltip, disableDelete, isAllSelected, isCompact, noLeftMargin, onSort, onSearch, onCompact, onExpand, onOpenDeleteModal, onSelectAll, showAdd, showDelete, showSelectAll, sortOrder, sortedColumnKey, } = this.props; const deleteIconStyling = disableDelete ? 'awx-ToolBarBtn awx-ToolBarBtn--disabled' : 'awx-ToolBarBtn'; const showExpandCollapse = (onCompact && onExpand); return ( {({ i18n }) => (
{ showSelectAll && ( )} { (showExpandCollapse || showDelete || addUrl || add) && ( )} {showExpandCollapse && ( { (showDelete || addUrl || add) && ( )} )} {showDelete && (
)} {showAdd && addUrl && ( )} {showAdd && add && ( {add} )}
)}
); } } DataListToolbar.propTypes = { add: PropTypes.node, addBtnToolTipContent: PropTypes.string, addUrl: PropTypes.string, columns: PropTypes.arrayOf(PropTypes.object).isRequired, deleteTooltip: PropTypes.node, disableDelete: PropTypes.bool, isAllSelected: PropTypes.bool, isCompact: PropTypes.bool, noLeftMargin: PropTypes.bool, onCompact: PropTypes.func, onExpand: PropTypes.func, onOpenDeleteModal: PropTypes.func, onSearch: PropTypes.func, onSelectAll: PropTypes.func, onSort: PropTypes.func, showAdd: PropTypes.bool, showDelete: PropTypes.bool, showSelectAll: PropTypes.bool, sortOrder: PropTypes.string, sortedColumnKey: PropTypes.string, }; DataListToolbar.defaultProps = { add: null, addBtnToolTipContent: i18nMark('Add'), addUrl: null, deleteTooltip: i18nMark('Delete'), disableDelete: true, isAllSelected: false, isCompact: false, noLeftMargin: false, onCompact: null, onExpand: null, onOpenDeleteModal: null, onSearch: null, onSelectAll: null, onSort: null, showAdd: false, showDelete: false, showSelectAll: false, sortOrder: 'ascending', sortedColumnKey: 'name', }; export default DataListToolbar;