Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0da90e84f7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| .fill(Color(.secondarySystemGroupedBackground)) | ||
| ) | ||
| if store.showDoneButton { | ||
| Text("프로필") |
| @@ -102,7 +101,6 @@ struct MarkdownWebView: UIViewRepresentable { | |||
| webView: WKWebView | |||
| ) { | |||
| self.view = view | |||
There was a problem hiding this comment.
이 호출과 구현을 제거하면서 저장소 전체에서 obscuredContentInsets.bottom 처리가 사라졌지만, 현재 아키텍처 계약은 TodoMarkdownContentView가 탭바·safe-area 적응을 소유하고 내부 MarkdownWebView가 하단 가림 inset 처리를 유지하도록 명시합니다. 새 시스템 레이아웃에서 보정이 불필요해진 것이 승인된 변경이라면 해당 계약도 함께 갱신하고, 그렇지 않다면 내부 처리를 복원해야 합니다. .agents/rules/architecture.mdL189-L190
Useful? React with 👍 / 👎.
| .onReceive(windowSubmits) { submit in | ||
| guard case .create(let value) = submit, | ||
| value.matchesCreate(category: store.category, source: .list) else { return } | ||
| store.send(.view(.windowTodoCreated)) |
There was a problem hiding this comment.
Mac Todo 생성 완료 처리를 화면 수명과 분리하세요
사용자가 목록에서 별도 편집 창을 연 뒤 저장 전에 목록에서 뒤로 이동하면 이 TodoListView와 onReceive 구독이 제거됩니다. TodoEditorWindowEvent는 replay 없는 PassthroughSubject이고 Home 수신부는 .home source만 처리하므로, 이후 .list 생성 결과가 도착해도 windowTodoCreated가 전달되지 않아 기존에 TodoWindowCoordinator가 항상 기록하던 todoCreate analytics가 누락됩니다. 창 완료 처리는 목록 View가 아니라 Entry 수명의 window 소유자에서 수신해야 합니다. .agents/rules/architecture.mdL178-L178
Useful? React with 👍 / 👎.
| } | ||
| case .search: | ||
| SearchView(store: coordinator.makeSearchStore()) | ||
| SearchView(store: searchStore) |
There was a problem hiding this comment.
searchStore를 HomeView 수명 동안 재사용하지만, SearchFeature는 검색 화면을 닫을 때 진행 중인 effect만 취소하고 searchQuery와 todos를 초기화하지 않습니다. 따라서 검색을 취소한 뒤 다시 열면 이전 검색어와 결과가 그대로, 이후 Todo가 변경된 경우에는 오래된 상태로 표시됩니다. 기존 makeSearchStore()는 매 presentation마다 새 Store를 만들었으므로, 닫을 때 검색 상태를 재설정하거나 새 presentation용 Store를 생성해야 합니다.
Useful? React with 👍 / 👎.
🔗 연관된 이슈
🎯 의도
iOS 18 이상에서 시스템 적응형 탭을 사용하도록 탐색 구조 정리 및 프로필 중심의 최근 활동 구성
📝 작업 내용
📌 요약
TabView(selection:)와.sidebarAdaptable로 네 메인 탭 구성NavigationSplitView·사용자 정의 탭바 제거🔍 상세
isTabContentActive·activePresentation으로 비활성 탭의 모달 표시 차단