// // Swiftfin is subject to the terms of the Mozilla Public // License, v2.0. If a copy of the MPL was not distributed with this // file, you can obtain one at https://mozilla.org/MPL/2.0/. // // Copyright (c) 2025 Jellyfin & Jellyfin Contributors // import Foundation import Stinsen import SwiftUI final class SelectUserCoordinator: NavigationCoordinatable { let stack = NavigationStack(initial: \SelectUserCoordinator.start) @Root var start = makeStart @Route(.push) var advancedSettings = makeAdvancedSettings @Route(.push) var connectToServer = makeConnectToServer @Route(.push) var editServer = makeEditServer @Route(.push) var userSignIn = makeUserSignIn func makeAdvancedSettings() -> NavigationViewCoordinator { NavigationViewCoordinator(AppSettingsCoordinator()) } func makeConnectToServer() -> NavigationViewCoordinator { NavigationViewCoordinator { ConnectToServerView() } } func makeEditServer(server: ServerState) -> NavigationViewCoordinator { NavigationViewCoordinator { EditServerView(server: server) .environment(\.isEditing, true) #if os(iOS) .navigationBarCloseButton { self.popLast() } #endif } } func makeUserSignIn(server: ServerState) -> NavigationViewCoordinator { NavigationViewCoordinator(UserSignInCoordinator(server: server)) } @ViewBuilder func makeStart() -> some View { SelectUserView() } }