diff --git a/packages/desktop-client/src/components/budget/misc.js b/packages/desktop-client/src/components/budget/misc.js index d32090b7aad1ab61dc04d31ea195d90329d31f69..7ad19deb53923932ffc2d980fa5a1255669846a4 100644 --- a/packages/desktop-client/src/components/budget/misc.js +++ b/packages/desktop-client/src/components/budget/misc.js @@ -181,6 +181,15 @@ class BudgetTable extends Component { }); }; + expandAllCategories = () => { + this.props.setCollapsed([]); + }; + + collapseAllCategories = () => { + let { setCollapsed, categoryGroups } = this.props; + setCollapsed(categoryGroups.map(g => g.id)); + }; + render() { let { type, @@ -253,6 +262,8 @@ class BudgetTable extends Component { <BudgetTotals MonthComponent={dataComponents.BudgetTotalsComponent} toggleHiddenCategories={this.toggleHiddenCategories} + expandAllCategories={this.expandAllCategories} + collapseAllCategories={this.collapseAllCategories} /> <IntersectionBoundary.Provider value={this.budgetCategoriesRef}> <View @@ -658,6 +669,8 @@ function RenderMonths({ component: Component, editingIndex, args, style }) { const BudgetTotals = memo(function BudgetTotals({ MonthComponent, toggleHiddenCategories, + expandAllCategories, + collapseAllCategories, }) { const [menuOpen, setMenuOpen] = useState(false); return ( @@ -714,13 +727,25 @@ const BudgetTotals = memo(function BudgetTotals({ onMenuSelect={type => { if (type === 'toggleVisibility') { toggleHiddenCategories(); + } else if (type === 'expandAllCategories') { + expandAllCategories(); + } else if (type === 'collapseAllCategories') { + collapseAllCategories(); } setMenuOpen(false); }} items={[ { name: 'toggleVisibility', - text: 'Toggle hidden categories', + text: 'Toggle hidden', + }, + { + name: 'expandAllCategories', + text: 'Expand all', + }, + { + name: 'collapseAllCategories', + text: 'Collapse all', }, ]} /> diff --git a/upcoming-release-notes/1143.md b/upcoming-release-notes/1143.md new file mode 100644 index 0000000000000000000000000000000000000000..8a6bd5fb88480223b4ef19e0181e6d314c2f0abd --- /dev/null +++ b/upcoming-release-notes/1143.md @@ -0,0 +1,6 @@ +--- +category: Enhancements +authors: [joel-jeremy] +--- + +Expand / collapse all categories