Skip to content

Commit ce5a10b

Browse files
authored
Enhance spending analytics and UI components (#292)
* Refactor SpendingHistorySection component to improve readability and performance - Reorganized imports and removed unused dependencies - Simplified currency formatting and state rendering functions - Introduced SpendingPeriodControls for better period selection UI - Enhanced data handling with memoization for performance - Updated table rendering logic to accommodate new state breakdown feature - Improved overall code structure and readability * Enhance CategoryTotals view with transaction details and expandable subcategories * Enhance CategoryTotals component with transaction detail handling and modals for editing splits and recurring transactions * Add fullWidth prop to CategorySelect in RecurringTransactionModal * Refactor split selection logic in useSplitEditor hook for clarity * Enhance spending analytics components with monthly average calculations and dropdown selection handling * Enhance CategoryTotals view with total and monthly average display for subcategories * Enhance SpendingHistorySection with improved state and total display metadata * Enhance SpendingPeriodControls with improved selection and date controls layout * Enhance SpendingPeriodControls with clear button functionality for year and month selection * Enhance CategoryTotals and SpendingHistorySection with aggregate range synchronization for custom date selection * Enhance CategoryTotals with improved color coding and metadata for ledger states and totals * Enhance CategoryTotals with dynamic text color based on transaction state * Enhance CategoryTotals with transaction sorting functionality and UI improvements * Enhance SpendingHistorySection with transaction sorting, detail rendering, and subcategory visibility toggle * Enhance test setup with explicit React 19 act environment configuration * Enhance SpendingHistorySection title to reflect categorized spending * Bump version to 2.7.0 in package.json * Enhance SpendingHistorySection with pie chart dimensions, legend measurement, and code formatting improvements * Enhance PULL_REQUEST_TEMPLATE and CHANGELOG with updated testing checklist and detailed version 2.7.0 changes
1 parent 9342df5 commit ce5a10b

14 files changed

Lines changed: 3888 additions & 1040 deletions

File tree

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,19 @@
66

77
-
88

9-
## Testing
10-
11-
- [ ] pnpm lint
12-
- [ ] pnpm test
13-
14-
## Checklist
15-
169
- [ ] Version updated appropriately in package.json
17-
- [ ] CHANGELOG updated
1810
- [ ] Tests updated/added if needed
19-
- [ ] No console warnings/errors introduced
11+
- [ ] CHANGELOG updated
2012

21-
## Related Issues
13+
# Testing
2214

23-
- Closes #
15+
- [ ] pnpm lint
16+
- [ ] pnpm test
2417

2518
## Manual QA
2619

27-
- [ ] Navigate between Dashboard (/dashboard) and Accounts (/accounts)
28-
- [ ] Create an account via "Create New Account"
29-
- [ ] Verify Material-UI components render correctly
30-
- [ ] Confirm version display appears (vX.Y.Z) and update dialog dismisses
20+
- [ ] Navigate to Dashboard and verify no errors are present
21+
- [ ] Navigate to Accounts and verify no errors are present
22+
- [ ] Navigate to Ledger for an account and verify no errors are present
23+
- [ ] Navigate to Categories and verify no errors are present
24+
- [ ] No console warnings/errors introduced

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.7.0] - 2026-04-03
11+
12+
### Added
13+
14+
- Added shared categorized-spending period controls and analytics for the dashboard and categories page, including Current Month, Last 3 Months, YTD, Last 12 Months, month/year filters, and custom date ranges.
15+
- Added state-aware spending summaries for current and future-inclusive ranges with completed, pending, scheduled, planned, total, and monthly average metrics, including recurring transactions in planned totals.
16+
- Added expandable transaction drilldowns for dashboard and category spending tables, with per-transaction date, account, description, amount, and direct edit flows for split and recurring transactions.
17+
18+
### Changed
19+
20+
- Renamed the dashboard Spending History section to Categorized Spending and updated its layout, colors, sorting, pie chart sizing, and optional subcategory hiding behavior.
21+
- Updated the Categories page totals panel to share the new spending controls, support monthly averages, allow subcategory transaction inspection, and align state styling with ledger/dashboard colors.
22+
- Simplified the Current Month Overview header and removed its Spending by Category content.
23+
- Bumped application version to `2.7.0`. (#292)
24+
25+
### Fixed
26+
27+
- Fixed category and dashboard date-range synchronization so aggregate presets populate and clear custom date inputs consistently.
28+
- Fixed split-editor selector memoization warnings on the Categories page and removed React 19 `act(...)` test-environment warnings.
29+
- Fixed the recurring transaction modal category selector width and improved categorized-spending pie chart legend sizing for large category lists.
30+
1031
## [2.6.1] - 2026-04-03
1132

1233
### Fixed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "luca-ledger",
3-
"version": "2.6.1",
3+
"version": "2.7.0",
44
"homepage": "https://lucaledger.app/",
55
"type": "module",
66
"license": "MIT",

src/__tests__/setup.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
import { vi, beforeEach } from 'vitest';
77
import 'fake-indexeddb/auto';
88

9+
// React 19 warns on act(...) unless the test environment opts in explicitly.
10+
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
11+
912
// Mock localStorage
1013
const localStorageMock = {
1114
store: {},

0 commit comments

Comments
 (0)