GT-3013 Add Lessons dashboard personalization#4416
Conversation
1b989bb to
d4870c1
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #4416 +/- ##
===========================================
+ Coverage 51.76% 51.99% +0.22%
===========================================
Files 453 454 +1
Lines 12014 12075 +61
Branches 2079 2092 +13
===========================================
+ Hits 6219 6278 +59
Misses 5181 5181
- Partials 614 616 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
17daeaa to
e6313df
Compare
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Mirrors the personalization toggle added to ToolsLayout — adds Mode, isPersonalizationEnabled, and eventSink to LessonsPresenter.UiState, reads the remote config flag, and shows a segmented button toggle at the top of the lessons list when personalization is enabled. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Loads lessons based on the current mode: PERSONALIZATION uses getPersonalizedLessonsFlow with the country from Settings, falling back to language-only when no country-specific results exist; ALL_LESSONS uses getLessonsFlowByLanguage. Both modes filter hidden lessons. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7181988 to
b431c27
Compare
PR Review: dashboardPersonalizationLessons8 commits · Lessons dashboard personalization feature SummaryAdds a personalization toggle to the Lessons dashboard that lets users switch between a country-personalized view and an all-lessons view. Introduces Checklist Findings✅ Looks Good
|
tjohnson009
left a comment
There was a problem hiding this comment.
Looks very similar to the previous one for tools, which makes sense.
Summary
LessonsLayoutletting users switch between a personalized view and all lessons, gated behind a Firebase Remote Config flagLessonsFlowProducerto supply the lesson list based on the selected mode (country-personalized with language fallback, or all lessons sorted by default order)GodToolsSyncService.syncToolOrderwhenever the selected locale changesTest plan
LessonsLayoutTest— toggle visibility, toggle click events, lesson card clickLessonsPresenterTest— mode state, persistence through save/restore, lessons filtered by mode, sync task registration/locale/forceLessonsFlowProducerTest— flow produces correct lessons per mode, hidden lesson filtering, fallback behavior🤖 Generated with Claude Code