Skip to content

Feature: "Rolling" Year Option for Continuous Date Range #224

@jwaspin

Description

@jwaspin

Ledger View: Add "Rolling" Year Option for Continuous Date Range

Summary

Add a new option to the year dropdown in the Ledger view that shows a rolling 7-month window centered on the current month, instead of a fixed calendar year.

Background

Currently, the year dropdown in src/views/Ledger/Ledger.jsx only shows calendar years. At year boundaries (December/January), users must switch between years frequently to see recent and upcoming transactions.

Requirements

1. Add "Rolling" Option to Year Dropdown

  • Add a new option labeled "Rolling" (or similar - conveys continuous/current context) to the existing year Select component
  • Position it as the first option in the dropdown, above the year list
  • Make it the default selection instead of the current year

2. Rolling Date Range Behavior

When "Rolling" is selected:

  • Display transactions from 3 months ago through 3 months ahead (7 months total)
  • Example: If current date is December 5, 2025, show September 2025 through March 2026

3. Expand/Collapse State

  • Expanded by default: Previous month, current month, next month (3 months)
  • Collapsed by default: The other 4 months (2 months before previous, 2 months after next)

4. Auto-Scroll to Current Date

  • When Ledger loads with "Rolling" selected, automatically scroll the view so the current month's transactions are visible
  • Scroll position should show the current date area, not just the month header

Key Files to Modify

  • src/views/Ledger/Ledger.jsx - Add "Rolling" option to year dropdown, implement date range filtering logic, handle expand/collapse state, add auto-scroll behavior

Acceptance Criteria

  • Year dropdown includes "Rolling" as the first option
  • "Rolling" is the default selection
  • Rolling view shows exactly 7 months: 3 past, current, 3 future
  • Previous, current, and next months are expanded; others collapsed
  • View auto-scrolls to current date on load
  • Selecting a specific year still works as before
  • yarn lint passes

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions