Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
0daa4e6
📄 Add CategoryDetails dev spec with screen design and requirements
igorescodro Mar 27, 2026
dbdec1b
📋 Add CategoryDetails screen design spec
igorescodro Mar 27, 2026
7629ea9
🧩 Add TaskGroup domain model for category task sections
igorescodro Mar 27, 2026
97012e2
🔍 Add LoadCategoryTasks use case with section grouping logic
igorescodro Mar 27, 2026
3dbf1c6
🕐 Fix timezone handling in LoadCategoryTasksImpl
igorescodro Mar 27, 2026
5a01cbf
🗺️ Add CategoryDetails destination, routing event, and feature flag
igorescodro Mar 27, 2026
62c49cc
♻️ Promote DateTimePicker to designsystem for cross-feature reuse
igorescodro Mar 27, 2026
3a72a04
🌐 Add CategoryDetails localization strings
igorescodro Mar 28, 2026
3f66e12
✨ Add KuvioCategoryHeader design system component
igorescodro Mar 28, 2026
fffbe65
🏗️ Add CategoryDetails state, mapper, and test fakes
igorescodro Mar 28, 2026
da42d94
⚙️ Add CategoryDetailsViewModel with state flow and task mutations
igorescodro Mar 28, 2026
1a618ad
🖼️ Add CategoryDetailsScreen composables (Section/Screen/Content)
igorescodro Mar 28, 2026
a2078cb
🔧 Replace raw Text with KuvioBodyMediumText in error state
igorescodro Mar 28, 2026
dc890a2
🔌 Wire CategoryDetails into NavGraph with feature flag branch
igorescodro Mar 28, 2026
19a86a3
🧪 Add CategoryDetailsScreenTest UI tests
igorescodro Mar 28, 2026
4f8b9e6
🧪 Add CategoryDetails E2E flow tests
igorescodro Mar 28, 2026
24f18ec
🎨 Apply ktlint formatting to CategoryDetails implementation
igorescodro Mar 28, 2026
941f915
🛡️ Resolve detekt violations in CategoryDetails implementation
igorescodro Mar 28, 2026
3ec1bdd
📝 Add Category Details implementation plan
igorescodro Mar 29, 2026
00b866d
🏗️ Refactor CategoryDetailsScreen to Screen/Loader/Content structure
igorescodro Mar 29, 2026
37e46af
🗂️ Introduce CategoryDetailsData in CategoryDetailsState
igorescodro Mar 29, 2026
2227161
🔧 Update CategoryDetailsMapper to build CategoryDetailsData
igorescodro Mar 29, 2026
af2a9e5
⚡ Switch CategoryDetailsViewModel to viewModelScope
igorescodro Mar 29, 2026
d383270
🧪 Update CategoryDetailsViewModelTest for new constructor and state s…
igorescodro Mar 29, 2026
fcf11f6
🧹 Remove isSinglePane from CategoryDetails composables
igorescodro Mar 29, 2026
203b676
🗺️ Remove isSinglePane from CategoryNavGraph call site
igorescodro Mar 29, 2026
0fc7dac
📦 Move LocalDate to import block in LoadCategoryTasksImpl
igorescodro Mar 29, 2026
6c16ebe
🎨 Inline KuvioEmojiIcon in KuvioCategoryHeader
igorescodro Mar 29, 2026
84718bb
✅ Add per-group UI tests and extract setUpContent helper
igorescodro Mar 29, 2026
8b57fe4
♻️ Use `KuvioMoreIcon` in `KuvioCategoryHeader`
igorescodro Mar 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions docs/devspecs/category-details/CategoryDetails.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# 🐈 Category details

## Overview

Alkaa is being revamped to a new user interface, following the Kuvio design system. The first screen
selected to be implemented is the Category details screen. This is a new screen in the app, since
the category details today is a simple Bottom Sheet where the user can simply update the category
name and color or delete it entirely, removing all the categories in the process.

![bottom-sheet.png](assets/bottom-sheet.png)

The new screen for the Category details is going to be a full screen showing a header with more
information, all the tasks associated with this category, a separation by task state, and more.

![new-category.png](assets/new-category.png)

## Screen details

The screen consists of the following components:

- **Header** - contains the back button, and a header with the information:
- Emoji icon related to the category - e.g. "🚀"
- Name of the category - e.g. "Work"
- Current progress - "14 tasks - 3 completed"
- Vertical three dots icon for options. Available options:
- Rename
- Delete
- **List of tasks** - contains the list of all tasks, separate by state. If a state does not have
tasks, the state is now shown in the UI
- States:
- Due today - tasks that have the due date equal today
- Upcoming - tasks that have the due date to a date in the future
- No due date - tasks without due date
- Completed - tasks completed
- **Add task bar** - the Kuvio component for adding a Task, floating at the bottom of the screen

## Current integration

This screen will be integrated in the "OnCategoryClick" event, controlled by the IsNewDesignEnabled
feature flag. When enabled, it will redirect to the new screen, otherwise it will keep forwarding
to the bottom sheet.

Components such as "add task bar" and the "task item" already exist in the Kuvio Design System. For
new complex components, such as the "header", a new component will be created on the design system
module.

## Out of scope

The following tasks are currently out of scope:

- Emojis are not yet supported in the category object. For now, we are simply showing a placeholder
- When clicking on the "Available options" ("Rename" and "Delete") no action will be taken yet.

## Acceptance criteria

All the acceptance criteria below assume that the IsNewDesignEnabled is turned on, meaning that
the feature is available

- Given the user navigates to the "Categories tab"
- When they click on an existing category
- Then the new screen is shown

---

- Given the user has several tasks
- When the Category Details screen is opened
- All categories will be shown in their respective states

---

- Given the user has no tasks
- When the Category Details is opened
- Information will be shown in the content area that no tasks were added yet

---

- Given the user is in the Category Details screen
- When they add a new task
- The task will be shown in the list

---

- Given the user is in the Category Details screen
- When they add a new task with a due date
- The task will be shown in the list, in the correct section

## Important

1. For changing the codebase, the skills inside [](../../../.claude/skills) must be used. They have
all the information on how to deal with implementing a feature, navigation, compose, testing,
etc.

2. The proposed code needs to follow the correct architecture as closely as possible

3. Each commit needs to be concise.

4. At the end of the work, all tests and quality checks are passing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading