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:
filblue
2021-09-02 00:25:54 +03:00
committed by GitHub
parent 83e7557d7b
commit dacd3de63f
7 changed files with 46 additions and 3 deletions

View File

@@ -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) }
}
}
}