feat(#29,#32,#33): home polish — Manage Categories to Settings, View All, empty-state illustration #36

Merged
admin merged 1 commits from feat/home-polish-29-32-33 into main 2026-06-28 14:25:58 +00:00
Owner

Summary

  • Move "Manage Categories" out of the Home dashboard: drop the ActionsRow row and add a new "Edit Categories" preference in SettingsScreen with a live n categories subtitle backed by SettingsScreenModel.categoriesCount (a hot StateFlow<Int> sourced from GetCategories).
  • Convert Home's "Recent" "See all" OutlinedButton into a "View All" TextButton rendered as the trailing slot of an extended SectionHeader(text, actions: @Composable RowScope.() -> Unit). Renames the home_see_all string to home_view_all ("View All") and drops the now-unused home_manage_categories.
  • Add a shared EmptyStateIllustration(message, modifier) composable (image + text, centered, onSurfaceVariant tint) using Icons.AutoMirrored.Outlined.ReceiptLong as the placeholder per the issue's allowance. Use it for the Home and Expenses-tab empty states; both reuse the existing home_dashboard_empty / expense_list_empty strings.

Test plan

  • ./gradlew compileDebugKotlin — clean (no new warnings)
  • ./gradlew test — passes
  • Manual: Home with expenses — "Recent" header shows "View All" text button on the right; tapping navigates to ExpenseListScreen
  • Manual: Home with no expenses — no Recent header; centered illustration + "No expenses yet for this period" fills the list area
  • Manual: Expenses tab with no expenses — centered illustration + "No expenses yet"
  • Manual: Settings → new "Categories" group → "Edit Categories" → subtitle shows "8 categories" (initial seed)
  • Manual: tap "Edit Categories" → CategoryScreen; add a category; back → subtitle updates to "9 categories" without restart
  • Manual: theme toggle (dark/light) — illustration respects onSurfaceVariant tint in both

Closes #29
Closes #32
Closes #33

## Summary - Move "Manage Categories" out of the Home dashboard: drop the `ActionsRow` row and add a new "Edit Categories" preference in `SettingsScreen` with a live `n categories` subtitle backed by `SettingsScreenModel.categoriesCount` (a hot `StateFlow<Int>` sourced from `GetCategories`). - Convert Home's "Recent" "See all" `OutlinedButton` into a "View All" `TextButton` rendered as the trailing slot of an extended `SectionHeader(text, actions: @Composable RowScope.() -> Unit)`. Renames the `home_see_all` string to `home_view_all` ("View All") and drops the now-unused `home_manage_categories`. - Add a shared `EmptyStateIllustration(message, modifier)` composable (image + text, centered, `onSurfaceVariant` tint) using `Icons.AutoMirrored.Outlined.ReceiptLong` as the placeholder per the issue's allowance. Use it for the Home and Expenses-tab empty states; both reuse the existing `home_dashboard_empty` / `expense_list_empty` strings. ## Test plan - [x] `./gradlew compileDebugKotlin` — clean (no new warnings) - [x] `./gradlew test` — passes - [ ] Manual: Home with expenses — "Recent" header shows "View All" text button on the right; tapping navigates to `ExpenseListScreen` - [ ] Manual: Home with no expenses — no Recent header; centered illustration + "No expenses yet for this period" fills the list area - [ ] Manual: Expenses tab with no expenses — centered illustration + "No expenses yet" - [ ] Manual: Settings → new "Categories" group → "Edit Categories" → subtitle shows "8 categories" (initial seed) - [ ] Manual: tap "Edit Categories" → CategoryScreen; add a category; back → subtitle updates to "9 categories" without restart - [ ] Manual: theme toggle (dark/light) — illustration respects `onSurfaceVariant` tint in both Closes #29 Closes #32 Closes #33
admin added 1 commit 2026-06-28 14:22:40 +00:00
admin merged commit 5f6de30958 into main 2026-06-28 14:25:58 +00:00
admin deleted branch feat/home-polish-29-32-33 2026-06-28 15:01:20 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/ledgerr#36