From 1226eaad516ec9736422d5500af130222b8c77d9 Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Mon, 10 Mar 2025 09:19:42 -0700 Subject: [PATCH] fix(router): Add missing types to transition (#60307) The 'types' property was added recently and is available in all browsers that support view transitions fixes #60285 PR Close #60307 --- goldens/public-api/router/index.api.md | 1 + packages/router/src/utils/view_transition.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/goldens/public-api/router/index.api.md b/goldens/public-api/router/index.api.md index 5a90f265898..57ab83aafe9 100644 --- a/goldens/public-api/router/index.api.md +++ b/goldens/public-api/router/index.api.md @@ -1117,6 +1117,7 @@ export interface ViewTransitionInfo { ready: Promise; updateCallbackDone: Promise; skipTransition(): void; + readonly types: Set; }; } diff --git a/packages/router/src/utils/view_transition.ts b/packages/router/src/utils/view_transition.ts index 3a2223f1e06..110f9044739 100644 --- a/packages/router/src/utils/view_transition.ts +++ b/packages/router/src/utils/view_transition.ts @@ -80,6 +80,12 @@ export interface ViewTransitionInfo { * @see https://developer.mozilla.org/en-US/docs/Web/API/ViewTransition/skipTransition */ skipTransition(): void; + + /** + * @see https://developer.mozilla.org/en-US/docs/Web/API/ViewTransition#browser_compatibility + * @see https://developer.chrome.com/docs/web-platform/view-transitions/same-document#default_style_and_transition_reference + */ + readonly types: Set; }; /** * The `ActivatedRouteSnapshot` that the navigation is transitioning from. @@ -125,7 +131,8 @@ export function createViewTransition( // routes (the DOM update). This view transition waits for the next change detection to // complete (below), which includes the update phase of the routed components. return createRenderPromise(injector); - }); + // TODO(atscott): Types in DefinitelyTyped are not up-to-date + }) as ViewTransition & {readonly types: Set}; const {onViewTransitionCreated} = transitionOptions; if (onViewTransitionCreated) { runInInjectionContext(injector, () => onViewTransitionCreated({transition, from, to}));