fix: teleport renders all outlets when multiple are registered before navigation#31
Merged
fix: teleport renders all outlets when multiple are registered before navigation#31
Conversation
… navigation
BehaviorSubject<string> replays only its single most recent value, so
when two outlets ('title' and 'actions') were registered before a child
route's *teleportTo subscribed, only the last-registered outlet name was
replayed — the first outlet's teleported content was silently dropped.
Adding startWith(name) to outlet$() makes each new subscription
immediately probe the current ports map for its target outlet instead of
waiting for a future newOutlet emission that has already fired. Outlets
not yet registered still work as before — they wait for the real
BehaviorSubject event.
Adds a regression test modelling the reported app-bar title + actions
pattern (persistent shell with two outlets, child page with two
teleportTo directives).
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BehaviorSubject replays only its single most recent value, so when two outlets ('title' and 'actions') were registered before a child route's *teleportTo subscribed, only the last-registered outlet name was replayed — the first outlet's teleported content was silently dropped.
Adding startWith(name) to outlet$() makes each new subscription immediately probe the current ports map for its target outlet instead of waiting for a future newOutlet emission that has already fired. Outlets not yet registered still work as before — they wait for the real BehaviorSubject event.
Adds a regression test modelling the reported app-bar title + actions pattern (persistent shell with two outlets, child page with two teleportTo directives).