import Foundation import Observation /// Carries a tapped notification's destination into the view tree. /// /// Owned by `gitbayApp`, above `ContentView`. The `TabView` inside /// `ContentView` carries `.id(account.id)`, so the account switch a /// cross-account tap performs tears that subtree down and rebuilds it. /// A target held inside would go with it; held here, the rebuilt tree /// drains it. /// /// The `.id` is on the `TabView`, not on `ContentView` itself, so /// `ContentView`'s own `@State` survives the switch — which is why the /// Dashboard path is reset explicitly in the drain rather than by /// identity. @Observable @MainActor final class PushRouter { var pending: PushTarget? /// A universal link to route, held for the same reason, and across /// sign-in when it arrives signed out. var pendingLink: URL? }