feat: implement last-played home and monthly activity calendar - #100
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed?
Replaces the summary-only Home with a personal game dashboard based on the supplied visual reference. The last-played banner shows the date, artwork (including custom banners), name, short description, total playtime, and Continue playing / Info / Settings actions. Shared launch controls retain cancel, stop, and Steam account-switch confirmation behavior.
Below the banner, Home shows other recently played games, download queue status, and a monthly activity calendar. Calendar weeks start on Monday, slots outside the month stay blank, and months expand to six rows when needed. Color intensity increases continuously from gray at zero hours to the full accent color at eight hours, without hatching or fixed ranges. The legend uses the same continuous gradient. Includes month navigation, dates, tooltips, a legend, totals, and active-day count.
Adds the read-only
get_playtime_activitycommand, which aggregates existing persisted sessions in Rust using validated local-day boundaries. Sessions crossing midnight and daylight saving changes are split correctly. Active sessions count through request time. No database migration or new dependencies. Enables Tab navigation for Home actions and adds loading, empty, cached/offline, and retryable error states.Validation
pnpm check,pnpm lint, andpnpm buildpass.pnpm test:home: 4 tests pass, also wired into CI.cargo fmt --all -- --checkand Clippy with-D warningspass.cargo test --all-features --locked: 294 pass, 5 existing ignored tests.UI changes
Screenshots use fixture data. Achievements and progress comparisons are excluded.
Dark theme with a previous month's activity
Light theme with the current month