From 40d140d34949b1f298e0faa4e5bad36514677314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=B6hler?= <74658813+SebastianKohler@users.noreply.github.com> Date: Mon, 23 Feb 2026 15:26:42 +0200 Subject: [PATCH] fix(angular-server): fallback to scoped+annotations when SSR DOM lacks attachShadow --- packages/angular-server/src/ionic-server-module.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/angular-server/src/ionic-server-module.ts b/packages/angular-server/src/ionic-server-module.ts index 72b53de322e..f2d65755a6a 100644 --- a/packages/angular-server/src/ionic-server-module.ts +++ b/packages/angular-server/src/ionic-server-module.ts @@ -20,8 +20,17 @@ export class IonicServerModule {} export function hydrateIonicComponents(doc: any, appId: any) { // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types return () => { + const supportsNativeAttachShadow = + typeof doc?.createElement?.('div')?.attachShadow === 'function'; + return hydrateDocument(doc, { - clientHydrateAnnotations: false, + // Fallback for SSR DOMs (e.g. Domino) that do not implement attachShadow. + ...(supportsNativeAttachShadow + ? { clientHydrateAnnotations: false } + : { + serializeShadowRoot: 'scoped', + clientHydrateAnnotations: true, + }), excludeComponents: [ // overlays 'ion-action-sheet',