Open
Description
Let say I have a coordinator like this:
import Foundation
import RMStoreKit
import Stinsen
import SwiftUI
final class AccountCoordinator: NavigationCoordinatable {
let stack = NavigationStack(initial: \AccountCoordinator.start)
@Root var start = makeStart
@Route(.fullScreen) var sports = makeSportScreen
@Route(.push) var joinCodeTeam = makeJoinTeamScreen
@Route(.push) var teamJoinCodeSettings = makeTeamJoinCodeSettingsScreen
@Route(.fullScreen) var subscription = makeSubscriptionModal
let mainViewModel: MainViewModel
init(mainViewModel: MainViewModel) {
self.mainViewModel = mainViewModel
}
@ViewBuilder
func makeStart() -> some View {
AccountsView()
.environmentObject(mainViewModel)
}
func makeSportScreen() -> NavigationViewCoordinator<CreateTeamCoordinator> {
NavigationViewCoordinator(
CreateTeamCoordinator(sportsViewModel: ViewModelBuilder.build(), mainViewModel: mainViewModel)
)
}
func makeJoinTeamScreen() -> some View {
JoinTeamView()
.environmentObject(mainViewModel)
}
@ViewBuilder
func makeTeamJoinCodeSettingsScreen() -> some View {
if let selectedTeam = mainViewModel.selectedTeam {
TeamJoinCodeView(viewModel: TeamJoinCodeViewModel(team: selectedTeam))
.environmentObject(mainViewModel)
}
}
@ViewBuilder
func makeSubscriptionModal() -> some View {
RMSubscriptionModal()
}
}
How do I detect which route I am current at so I can adjust my logic accordingly?
if (accountRouters?.isRoot(\.sports)).orFalse() {
// do something
} else {
// do something else
}
Metadata
Assignees
Labels
No labels
Activity