-
Notifications
You must be signed in to change notification settings - Fork 0
20260309 #51 todo list screen 캘린더 중심 재설계 #52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The head ref may contain hidden characters: "20260309_#51_TodoListScreen_\uCE98\uB9B0\uB354_\uC911\uC2EC_\uC7AC\uC124\uACC4"
Changes from all commits
c4995f2
c116c3b
c0d6c06
617cf43
068db75
6acc20b
5187582
60de94e
0e2d138
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| # 홈 화면 Todo Bank + Slidable 스와이프 액션 구현 | ||
|
|
||
| **Goal:** 홈 화면 바텀시트에 todo bank 섹션을 추가하고, 할일 스와이프 액션을 flutter_slidable로 개선하여 날짜별 할일 관리 UX를 향상시킨다. | ||
|
|
||
| **Architecture:** 기존 HomeScreen 바텀시트에 todo bank 섹션 추가. TodoListScreen은 변경 없음. DismissibleTodoItem을 Dismissible에서 flutter_slidable의 Slidable로 교체. | ||
|
|
||
| **Tech Stack:** Flutter · Riverpod · flutter_slidable · table_calendar | ||
|
|
||
| **관련 이슈:** #51 | ||
|
|
||
| --- | ||
|
|
||
| ## 구현 내용 | ||
|
|
||
| ### 1. Todo Bank (홈 화면 바텀시트) | ||
|
|
||
| **변경 파일:** | ||
| - `lib/features/todo/presentation/providers/todo_provider.dart` — `todosNotForDate` provider 추가 | ||
| - `lib/features/todo/presentation/providers/todo_provider.g.dart` — 코드 생성 | ||
| - `lib/features/home/presentation/screens/home_screen.dart` — `_buildTodoBankSection`, `_addTodoToDate` 추가 | ||
|
|
||
| **동작:** | ||
| - 홈 화면 캘린더에서 날짜 선택 후, 해당 날짜에 배정되지 않은 할일 목록을 "할 일 추가" 섹션으로 표시 | ||
| - 할일을 탭하면 선택된 날짜의 scheduledDates에 추가되어 즉시 해당 날짜 할일 목록에 나타남 | ||
| - 다른 날짜를 선택하면 해당 날짜에 미배정된 할일이 다시 bank에 표시됨 | ||
| - scheduledDates가 비어있는 할일(미지정)은 bank에 표시하지 않음 | ||
|
|
||
| ### 2. Slidable 스와이프 액션 | ||
|
|
||
| **변경 파일:** | ||
| - `lib/features/todo/presentation/widgets/dismissible_todo_item.dart` — Dismissible → Slidable 교체 | ||
| - `pubspec.yaml` / `pubspec.lock` — flutter_slidable 패키지 추가 | ||
|
|
||
| **동작:** | ||
| - **좌→우 (startActionPane):** 카테고리 이동 — `primaryLight` 색상 | ||
| - **우→좌 (endActionPane):** | ||
| - 날짜에서 제거 (contextDate가 있을 때만) — `accentGoldLight` 색상 | ||
| - 삭제 — `error` 색상 | ||
| - CustomSlidableAction + 투명 배경 + 아이콘/텍스트만 표시 (다크 우주 테마에 어울리는 미니멀 스타일) | ||
| - 타이머 연동 중인 할일은 제거/삭제 차단 | ||
|
|
||
| ### 3. 변경하지 않은 것 | ||
|
|
||
| - TodoListScreen (카테고리 그리드 중심 레이아웃 유지) | ||
| - CategoryTodoScreen 및 라우팅 | ||
| - 기존 할일 CRUD 로직 |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 131
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 1222
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 297
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 154
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 58
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 1237
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 1270
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 1117
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 58
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 58
🏁 Script executed:
# List all files in home presentation directory ls -la lib/features/home/presentation/Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 296
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 135
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 9215
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 1747
🏁 Script executed:
Repository: SpaceStudyShip/SpaceStudyShip-FE
Length of output: 550
_addTodoToDate()를Future<void>로 변경하고await/try-catch로 에러 처리 필수addDateToTodo()가 비동기 mutation인데_addTodoToDate()가void반환형이고await없이 호출되므로, 저장 실패 시 에러가 처리되지 않은 채 비동기로 흘러갑니다. 이 헬퍼를Future<void>로 변경하고 내부에서await/try-catch로 사용자 피드백을 처리해 주세요.🤖 Prompt for AI Agents