Skip to content

Commit 5f86bc7

Browse files
committed
ref: Use frameEntryLoaded event to properly process entry
1 parent c55ab1f commit 5f86bc7

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

packages/core/ui/frame/frame-common.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,18 +122,24 @@ export class FrameBase extends CustomLayoutView {
122122
@profile
123123
public onLoaded() {
124124
const parentFrame = this.page?.frame;
125-
// Pending frame can be the first frame in the view tree or a nested frame
126-
const pendingFrame = parentFrame && parentFrame.isLoadingSubviews ? parentFrame : this;
127-
128-
pendingFrame.once(FrameBase.loadedEvent, () => {
129-
this.onFrameLoaded();
130-
});
131125

132126
super.onLoaded();
127+
128+
if (parentFrame && parentFrame.isLoadingSubviews) {
129+
parentFrame.once('frameEntryLoaded', () => {
130+
this.onFrameLoaded();
131+
});
132+
} else {
133+
this.onFrameLoaded();
134+
}
133135
}
134136

135137
public onFrameLoaded(): void {
136138
this._processNextNavigationEntry();
139+
this.notify({
140+
eventName: 'frameEntryLoaded',
141+
object: this,
142+
});
137143
}
138144

139145
public canGoBack(): boolean {

packages/core/ui/frame/index.android.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -628,17 +628,20 @@ function cloneExpandedTransitionListener(expandedTransitionListener: any) {
628628

629629
function getTransitionState(entry: BackstackEntry): TransitionState {
630630
const expandedEntry = <any>entry;
631-
const transitionState = <TransitionState>{};
631+
632+
let transitionState: TransitionState;
632633

633634
if (expandedEntry.enterTransitionListener && expandedEntry.exitTransitionListener) {
635+
transitionState = <TransitionState>{};
636+
634637
transitionState.enterTransitionListener = cloneExpandedTransitionListener(expandedEntry.enterTransitionListener);
635638
transitionState.exitTransitionListener = cloneExpandedTransitionListener(expandedEntry.exitTransitionListener);
636639
transitionState.reenterTransitionListener = cloneExpandedTransitionListener(expandedEntry.reenterTransitionListener);
637640
transitionState.returnTransitionListener = cloneExpandedTransitionListener(expandedEntry.returnTransitionListener);
638641
transitionState.transitionName = expandedEntry.transitionName;
639642
transitionState.entry = entry;
640643
} else {
641-
return null;
644+
transitionState = null;
642645
}
643646

644647
return transitionState;

0 commit comments

Comments
 (0)