import React, { useMemo, useState, useCallback } from 'react'; import Icon from 'components/Icon'; import { Button, NavbarGroup, Classes, NavbarDivider, MenuItem, Menu, Popover, PopoverInteractionKind, Position, Intent } from '@blueprintjs/core'; import classNames from 'classnames'; import { useRouteMatch, useHistory } from 'react-router-dom'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import DialogConnect from 'connectors/Dialog.connector'; import { compose } from 'utils'; import FilterDropdown from 'components/FilterDropdown'; import ManualJournalsConnect from 'connectors/ManualJournals.connect'; import ResourceConnect from 'connectors/Resource.connector'; function ManualJournalActionsBar({ views, getResourceFields, addManualJournalsTableQueries, onFilterChanged, selectedRows, onBulkDelete }) { const { path } = useRouteMatch(); const history = useHistory(); const manualJournalFields = getResourceFields('manual_journals'); const viewsMenuItems = views.map(view => { return ( ); }); const onClickNewManualJournal = useCallback(() => { history.push('/dashboard/accounting/make-journal-entry'); }, [history]); const filterDropdown = FilterDropdown({ fields: manualJournalFields, onFilterChange: filterConditions => { addManualJournalsTableQueries({ filter_roles: filterConditions || '' }); onFilterChanged && onFilterChanged(filterConditions); } }); const hasSelectedRows = useMemo(() => selectedRows.length > 0, [selectedRows]); // Handle delete button click. const handleBulkDelete = useCallback(() => { onBulkDelete && onBulkDelete(selectedRows.map(r => r.id)); }, [onBulkDelete, selectedRows]); return ( {viewsMenuItems}} minimal={true} interactionKind={PopoverInteractionKind.HOVER} position={Position.BOTTOM_LEFT} >