import ComposableArchitecture import SwiftUI @Reducer struct SyncUpDetail { @ObservableState struct State: Equatable { @Presents var editSyncUp: SyncUpForm.State? @Shared var syncUp: SyncUp } enum Action { case cancelEditButtonTapped case deleteButtonTapped case doneEditingButtonTapped case editButtonTapped case editSyncUp(PresentationAction) } var body: some ReducerOf { Reduce { state, action in switch action { case .cancelEditButtonTapped: state.editSyncUp = nil return .none case .deleteButtonTapped: return .none case .editButtonTapped: state.editSyncUp = SyncUpForm.State(syncUp: state.syncUp) return .none case .editSyncUp: return .none } } .ifLet(\.$editSyncUp, action: \.editSyncUp) { SyncUpForm() } } } struct SyncUpDetailView: View { // ... }