This PR implements the dashboard analytics feature as requested. It introduces recharts to render the user's earnings over time, which is lazy-loaded to keep the initial bundle size small (~314kB). The implementation also extracts the dashboard into maintainable sub-components (PlatformStats, PersonalProgress, TrendingQuests, RecentActivity) and provides a full neo-brutalist UI overhaul with platform-wide and personal statistics.
In addition, it resolves the following issues:
- #880 perf(milestone): Paginated
get_enrollee_progresswithoffsetandlimitto prevent unbounded range queries and save gas. - #877 feat(quest): Standardized payload to include
(quest_id, enrollee, actor, timestamp, join_mode)in enrollment events. - #894 fix(frontend): Added specific UI for DUPLICATE / ERROR submit statuses.
- #890 fix(frontend): Detected account change after signing by comparing the envelope's source account to the wallet.
Closes: #56, #880, #877, #894, #890
- Bug fix
- New feature
- Refactor (no behavior change)
- Documentation
- Infrastructure / CI
- Tests
- I have read the Contributing Guide
- My PR title follows Conventional Commits (e.g.,
feat:,fix:,refactor:) - I have added at least one label to this PR
- I have added/updated tests for my changes (if applicable)
-
cargo test --workspacepasses (if contracts changed) -
pnpm buildpasses (if frontend changed) -
cargo fmt --all -- --checkpasses (if Rust changed) -
pnpm lintpasses (if frontend changed)