[#576] TodoListView에 TCA를 적용한다#597
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Code Review
이번 PR은 기존의 TodoListViewModel을 Composable Architecture(TCA) 기반의 TodoListFeature로 마이그레이션하고, TodoListView 및 관련 테스트 코드와 코디네이터를 이에 맞게 업데이트하는 변경 사항을 담고 있습니다. 리뷰어는 필터 변경 및 새로고침 시 발생할 수 있는 레이스 컨디션을 방지하기 위해 fetchEffect에 .cancellable을 적용할 것을 제안했습니다. 또한, State 구조체의 커스텀 == 구현을 제거하여 컴파일러가 Equatable을 자동 합성하도록 개선하고, 삭제 취소 완료 시(finishDeleteToast) 모든 임시 숨김 항목을 일괄 제거하여 상태 일관성을 강화할 것을 권장했습니다.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔗 연관된 이슈
🎯 의도
📝 작업 내용
📌 요약
BindingAction중심으로 정리AlertState로 전환FullScreenCoverState기반으로 전환TodoQuery.isPinned를Bool?에서Bool로 정리하고 pinned 필터 의미를 단순화🔍 상세
TodoListFeature추가 및TodoListView를StoreOf<TodoListFeature>기반으로 연결TodoListFeatureTests와 테스트 어댑터를 추가해 onAppear, pagination, search debounce, filter/sort, toggle, delete/undo, alert, fullScreenCover 상태를 검증TodoListView의 검색창, 정렬 메뉴, 필터 메뉴에서 수동 binding을 제거하고BindingAction경로로 통일showAlert/alertTitle/alertMessage조합에서AlertState로 전환showEditorBool에서FullScreenCoverState로 전환TodoQuery.isPinned의nil == 필터 없음,true == pinned only패턴을false == 필터 없음,true == pinned only로 단순화query.isPinned == true일 때만 pinned 조건을 추가하도록 조정📸 영상 / 이미지 (Optional)