wake-ios/wake/Utils/Router.swift
2025-08-24 16:34:23 +08:00

46 lines
920 B
Swift

import SwiftUI
@MainActor
enum AppRoute: Hashable {
case avatarBox
case feedbackView
case feedbackDetail(type: FeedbackView.FeedbackType)
case mediaUpload
// Add other routes here as needed
@ViewBuilder
var view: some View {
switch self {
case .avatarBox:
AvatarBoxView()
case .feedbackView:
FeedbackView()
case .feedbackDetail(let type):
FeedbackDetailView(feedbackType: type)
case .mediaUpload:
MediaUploadView()
}
}
}
@MainActor
class Router: ObservableObject {
static let shared = Router()
@Published var path = NavigationPath()
private init() {}
func navigate(to destination: AppRoute) {
path.append(destination)
}
func pop() {
path.removeLast()
}
func popToRoot() {
path = NavigationPath()
}
}