Skip to content

Feature: 시크릿 수정 화면 + UpdateSecretUseCase #76

Description

@doyeonk429

목표

조회 화면에서 수정 모드로 전환되는 편집 화면을 구현하고, 시크릿 업데이트 도메인을 연결한다.
수정 모드는 조회 레이아웃을 유지하되 모든 필드가 편집 가능하며, 하단에 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 흐름

Metadata

Metadata

Assignees

Labels

✨ Feature새로운 기능 개발

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions