mirror of
https://github.com/pointfreeco/swift-composable-architecture.git
synced 2025-12-20 09:11:33 +01:00
NavigateAndLoad: Cancel loading on dismiss (#757)
* NavigateAndLoad: Cancel loading on dismiss * Update Examples/CaseStudies/SwiftUICaseStudies/03-Navigation-NavigateAndLoad.swift Co-authored-by: Stephen Celis <stephen.celis@gmail.com> * Update Examples/CaseStudies/SwiftUICaseStudies/03-Navigation-Sheet-PresentAndLoad.swift Co-authored-by: Stephen Celis <stephen.celis@gmail.com> * Add cancellation to UIKitCaseStudies/NavigateAndLoad.swift * Add cancellation to LoadThenNavigate studies Co-authored-by: Stephen Celis <stephen.celis@gmail.com>
This commit is contained in:
@@ -26,6 +26,7 @@ struct LoadThenNavigateListState: Equatable {
|
||||
|
||||
enum LoadThenNavigateListAction: Equatable {
|
||||
case counter(CounterAction)
|
||||
case onDisappear
|
||||
case setNavigation(selection: UUID?)
|
||||
case setNavigationSelectionDelayCompleted(UUID)
|
||||
}
|
||||
@@ -57,6 +58,9 @@ let loadThenNavigateListReducer =
|
||||
case .counter:
|
||||
return .none
|
||||
|
||||
case .onDisappear:
|
||||
return .cancel(id: CancelId())
|
||||
|
||||
case let .setNavigation(selection: .some(navigatedId)):
|
||||
for row in state.rows {
|
||||
state.rows[id: row.id]?.isActivityIndicatorVisible = row.id == navigatedId
|
||||
@@ -119,6 +123,7 @@ struct LoadThenNavigateListView: View {
|
||||
}
|
||||
}
|
||||
.navigationBarTitle("Load then navigate")
|
||||
.onDisappear { viewStore.send(.onDisappear) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user