From 5ac6f065ab370ae99657c7a230bfd7ebf1d2f587 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Tue, 24 Dec 2024 10:01:16 +0200 Subject: [PATCH] fix(router): avoid component ID collisions with user code (#59300) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently the `ɵEmptyOutletComponent` is very prone to generating ID collision warnings with user code, because it only has one child and no other metadata. This shows up some of our tests as well. While users can resolve it on their end, it can be confusing since they won't have any references to `ɵEmptyOutletComponent` in their own code. These changes add an `exportAs` to it to make its component ID unique. This doesn't affect the public API of the component since users can't use it directly anyways. PR Close #59300 --- packages/router/src/components/empty_outlet.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/router/src/components/empty_outlet.ts b/packages/router/src/components/empty_outlet.ts index 949d390a339..976c5d5c9e4 100644 --- a/packages/router/src/components/empty_outlet.ts +++ b/packages/router/src/components/empty_outlet.ts @@ -23,8 +23,10 @@ export {ɵEmptyOutletComponent as EmptyOutletComponent}; * to this `EmptyOutletComponent`. */ @Component({ - template: ``, + template: ``, imports: [RouterOutlet], + // Used to avoid component ID collisions with user code. + exportAs: 'emptyRouterOutlet', }) export class ɵEmptyOutletComponent {}