30 lines
488 B
Swift
30 lines
488 B
Swift
import Foundation
|
|
|
|
protocol AppRouting {
|
|
func route(to route: Route)
|
|
}
|
|
|
|
final class AppRouter: ObservableObject {
|
|
@Storage(.currentServer) private var currentURL: URL?
|
|
|
|
@Published private(set) var route: Route = .serverList
|
|
}
|
|
|
|
extension AppRouter: AppRouting {
|
|
func route(to route: Route) {
|
|
switch route {
|
|
case .roomList(let server):
|
|
currentURL = server.url
|
|
case .serverList:
|
|
break
|
|
}
|
|
|
|
self.route = route
|
|
}
|
|
}
|
|
|
|
enum Route {
|
|
case serverList
|
|
case roomList(Server)
|
|
}
|