## 목표 조회 화면에서 수정 모드로 전환되는 편집 화면을 구현하고, 시크릿 업데이트 도메인을 연결한다. 수정 모드는 조회 레이아웃을 유지하되 모든 필드가 편집 가능하며, 하단에 Save / Cancel footer가 추가된다. ## 작업 범위 ### DVDomain — 신규 - [ ] UpdateSecretUseCase.swift — protocol + UpdateSecretUseCaseImpl - [ ] UpdateSecretPayload.swift — CreateSecretPayload와 동일 구조면 typealias 처리 ### DVPresentation — 신규/수정 - [ ] SecretMetaFields+FromSecret.swift — init(secret:) 역매핑 (secret.payload → SecretMetaFields.content) - [ ] SecretManagementClient.swift — updateSecret 프로퍼티 추가 ### Devault App — 수정 - [ ] SecretManagementClient+Live.swift — updateSecret liveValue 조립 + dispatchUpdateSecret ### SecretDetailFeature — 수정 - [ ] didTapEdit: mode = .editing, editFields = SecretMetaFields(secret:) - [ ] didTapCancelEdit: 변경 없으면 즉시 복귀 / 있으면 confirmDiscard alert - [ ] didTapSave: validation → isSaving → useCase 호출 - [ ] saveResponse(.success): mode = .viewing, editFields = nil, delegate(.secretUpdated) - [ ] binding(\.editFields) 처리 ### SecretDetailView — 수정 - [ ] editingBody 완성 — 기존 CreateSecret SectionView 재사용 (editFields 바인딩) - [ ] FooterActionsView 연결 (isSaveEnabled = !isSaving) - [ ] discardChanges Alert ### 테스트 - [ ] SecretDetailFeatureTests — edit 진입, save 성공/실패, cancel, discard 흐름
목표
조회 화면에서 수정 모드로 전환되는 편집 화면을 구현하고, 시크릿 업데이트 도메인을 연결한다.
수정 모드는 조회 레이아웃을 유지하되 모든 필드가 편집 가능하며, 하단에 Save / Cancel footer가 추가된다.
작업 범위
DVDomain — 신규
DVPresentation — 신규/수정
Devault App — 수정
SecretDetailFeature — 수정
SecretDetailView — 수정
테스트