diff --git a/client/src/components/Dashboard/DashboardActionViewsList.js b/client/src/components/Dashboard/DashboardActionViewsList.js index 120e78c87..17a3f0d98 100644 --- a/client/src/components/Dashboard/DashboardActionViewsList.js +++ b/client/src/components/Dashboard/DashboardActionViewsList.js @@ -1,4 +1,4 @@ -import React, { useMemo } from 'react'; +import React, { useMemo, useState } from 'react'; import classNames from 'classnames'; import { Button, @@ -15,15 +15,21 @@ import { Icon } from 'components'; export default function DashboardActionViewsList({ resourceName, - views + views, + onChange, }) { const history = useHistory(); const handleClickViewItem = (view) => { - history.push(view ? `/${resourceName}/${view.id}/custom_view` : '/accounts'); + history.push( + view ? `/${resourceName}/${view.id}/custom_view` : '/accounts', + ); + onChange && onChange(view); }; const viewsMenuItems = views.map((view) => { - return handleClickViewItem(view)} text={view.name} />; + return ( + handleClickViewItem(view)} text={view.name} /> + ); }); return ( diff --git a/client/src/containers/Accounting/ManualJournalActionsBar.js b/client/src/containers/Accounting/ManualJournalActionsBar.js index bfd49572a..ca0070fa7 100644 --- a/client/src/containers/Accounting/ManualJournalActionsBar.js +++ b/client/src/containers/Accounting/ManualJournalActionsBar.js @@ -21,7 +21,7 @@ import FilterDropdown from 'components/FilterDropdown'; import DashboardActionsBar from 'components/Dashboard/DashboardActionsBar'; import withDialogActions from 'containers/Dialog/withDialogActions'; -import { If } from 'components'; +import { If, DashboardActionViewsList } from 'components'; import withResourceDetail from 'containers/Resources/withResourceDetails'; import withManualJournals from 'containers/Accounting/withManualJournals'; @@ -29,9 +29,11 @@ import withManualJournalsActions from 'containers/Accounting/withManualJournalsA import { compose } from 'utils'; +/** + * Manual journal actions bar. + */ function ManualJournalActionsBar({ // #withResourceDetail - resourceName = 'manual_journals', resourceFields, // #withManualJournals @@ -39,21 +41,15 @@ function ManualJournalActionsBar({ // #withManualJournalsActions addManualJournalsTableQueries, + changeManualJournalCurrentView, onFilterChanged, selectedRows = [], onBulkDelete, }) { - const { path } = useRouteMatch(); const [filterCount, setFilterCount] = useState(0); const history = useHistory(); - const viewsMenuItems = manualJournalsViews.map((view) => { - return ( - - ); - }); - const onClickNewManualJournal = useCallback(() => { history.push('/make-journal-entry'); }, [history]); @@ -73,32 +69,30 @@ function ManualJournalActionsBar({ onFilterChanged && onFilterChanged(filterConditions); }, }); - const hasSelectedRows = useMemo( - () => selectedRows.length > 0, - [selectedRows]); + const hasSelectedRows = useMemo(() => selectedRows.length > 0, [ + selectedRows, + ]); // Handle delete button click. const handleBulkDelete = useCallback(() => { onBulkDelete && onBulkDelete(selectedRows.map((r) => r.id)); }, [onBulkDelete, selectedRows]); + const handleTabChange = (viewId) => { + changeManualJournalCurrentView(viewId.id || -1); + addManualJournalsTableQueries({ + custom_view_id: viewId.id || null, + }); + }; + return ( - {viewsMenuItems}} - minimal={true} - interactionKind={PopoverInteractionKind.HOVER} - position={Position.BOTTOM_LEFT} - > -