Skip to content

Add dashboard and vendors view controls#58

Merged
andrewzolotukhin merged 3 commits into
mainfrom
feat/dashboard-vendor-controls
Jun 27, 2026
Merged

Add dashboard and vendors view controls#58
andrewzolotukhin merged 3 commits into
mainfrom
feat/dashboard-vendor-controls

Conversation

@andrewzolotukhin

@andrewzolotukhin andrewzolotukhin commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Original request

Add an Expand all button to the vendors and dashboard views, plus a small settings menu near Add that lets the user display all costs in the default or one of their favorite currencies. Follow-up: put Expand all / Collapse all under the new settings menu and make currencies second-level submenu items.

What changed

  • Added optional dashboard currency query support to the contracts, API cache keys, API handlers, and dashboard window helper.
  • Dashboard summaries keep default-currency behavior by default, and convert original transaction amounts into a selected reporting currency when requested.
  • Added a dashboard/vendors View settings menu next to Add Transaction.
  • Moved Expand all / Collapse all into the top level of that View settings menu for both Dashboard and Vendors.
  • Moved currency choices into a second-level Display currency submenu with default/favorite currency radio items.
  • Preserved the selected dashboard/vendors currency in URLs, period tabs, swipe navigation, and dashboard-to-vendors links.
  • Updated e2e and component tests for the settings-menu expand flow and the currency submenu hierarchy.

Reasoning

The currency selector needs API-backed conversion because dashboard totals are aggregated before rendering. A client-only relabel would misstate totals, so the API now converts transaction original amounts to the selected reporting currency only when a non-default currency is requested. Keeping Expand all / Collapse all in the same View settings menu as Display currency makes the header control the place for view-level options, while row-level disclosure buttons still handle individual groups.

Screenshots / preview evidence

Preview URL: https://xpenser-pr-058.cleverbrush.com

Manual preview QA completed against the seeded preview account:

  • Dashboard has no standalone Categories-card Expand all button.
  • Dashboard View settings opens a first-level menu with Expand all and Display currency USD.
  • Dashboard Display currency opens a second-level submenu with USD checked and EUR available.
  • Dashboard Expand all from View settings opens nested vendor rows and the menu item flips to Collapse all.
  • Vendors has no standalone Vendors-card Expand all button.
  • Vendors View settings opens a first-level menu with Expand all and Display currency USD.
  • Vendors Display currency opens a second-level submenu with USD checked and EUR available.
  • Vendors Expand all from View settings opens nested category rows.

Validation

  • npm run lint passed.
  • npm run typecheck passed.
  • npm test passed: 81 files, 438 tests.
  • Focused component tests passed: npx vitest --run apps/web/components/dashboard-view-settings-menu.test.tsx apps/web/components/dashboard-explorer.test.tsx apps/web/components/vendor-analytics-panel.test.tsx.
  • GitHub required checks passed on commit 29696d2:
    • Lint and test
    • Deploy PR environment
    • Playwright e2e
  • SigNoz checks for xpenser-web-pr-58 and xpenser-api-pr-58 over the preview QA window:
    • Error logs: no rows returned.
    • Error traces: no rows returned.
    • Metrics: no http or request metrics were listed for these PR services in that window, so no metric query was applicable.
  • PR-ready notification sent successfully.

@andrewzolotukhin andrewzolotukhin temporarily deployed to pr-58 June 27, 2026 09:33 — with GitHub Actions Inactive
@andrewzolotukhin andrewzolotukhin temporarily deployed to pr-58 June 27, 2026 09:55 — with GitHub Actions Inactive
@andrewzolotukhin andrewzolotukhin temporarily deployed to pr-58 June 27, 2026 10:24 — with GitHub Actions Inactive
@andrewzolotukhin andrewzolotukhin merged commit abb9d56 into main Jun 27, 2026
4 checks passed
@andrewzolotukhin andrewzolotukhin deleted the feat/dashboard-vendor-controls branch June 27, 2026 20:45
@andrewzolotukhin andrewzolotukhin mentioned this pull request Jun 28, 2026
15 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant