import React from 'react'; import Icon from 'components/Icon'; import { Button, Classes, NavbarDivider, NavbarGroup, Intent, Alignment, } from '@blueprintjs/core'; import { useHistory } from 'react-router-dom'; import { FormattedMessage as T, AdvancedFilterPopover, DashboardFilterButton, DashboardRowsHeightButton, } from 'components'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import { If, DashboardActionViewsList } from 'components'; import { useRefreshInvoices } from 'hooks/query/invoices'; import { useInvoicesListContext } from './InvoicesListProvider'; import withSettingsActions from 'containers/Settings/withSettingsActions'; import withSettings from 'containers/Settings/withSettings'; import withInvoiceActions from './withInvoiceActions'; import withInvoices from './withInvoices'; import { compose } from 'utils'; /** * Invoices table actions bar. */ function InvoiceActionsBar({ // #withInvoiceActions setInvoicesTableState, // #withInvoices invoicesFilterRoles, // #withSettings invoicesTableSize, // #withSettingsActions addSetting, }) { const history = useHistory(); // Sale invoices list context. const { invoicesViews, invoicesFields } = useInvoicesListContext(); // Handle new invoice button click. const handleClickNewInvoice = () => { history.push('/invoices/new'); }; // Invoices refresh action. const { refresh } = useRefreshInvoices(); // Handle views tab change. const handleTabChange = (view) => { setInvoicesTableState({ viewSlug: view ? view.slug : null }); }; // Handle click a refresh sale invoices const handleRefreshBtnClick = () => { refresh(); }; // Handle table row size change. const handleTableRowSizeChange = (size) => { addSetting('salesInvoices', 'tableSize', size); }; return (