Merge remote-tracking branch 'origin/main' into refactor/circular-deps

This commit is contained in:
Nathan Walker
2025-09-09 22:37:58 -07:00
38 changed files with 2618 additions and 42 deletions

View File

@@ -262,9 +262,22 @@ export class PageTransition extends Transition {
newFragment.setSharedElementEnterTransition(transitionSet);
newFragment.setSharedElementReturnTransition(transitionSet);
// Guard against duplicate shared element names being added to the same transaction
const addedSharedElementNames = new Set();
presenting.forEach((v) => {
const name = v?.sharedTransitionTag;
const nativeView = v?.nativeView;
if (!name || !nativeView || addedSharedElementNames.has(name)) {
// prevent duplicates or invalid items
return;
}
setTransitionName(v);
fragmentTransaction.addSharedElement(v.nativeView, v.sharedTransitionTag);
try {
fragmentTransaction.addSharedElement(nativeView, name);
addedSharedElementNames.add(name);
} catch (err) {
// ignore duplicates or issues adding shared element to avoid crashing
}
});
if (toPage.isLoaded) {
onPageLoaded();