@@ -12,6 +12,7 @@ import {
1212 MODULE_DATA_HREF_ATTRIBUTE ,
1313 MODULE_SSR_HREF_ATTRIBUTE ,
1414 MODULE_SSR_INSTANCE_ATTRIBUTE ,
15+ MODULE_SSR_MODULE_ATTRIBUTE ,
1516 MODULE_SSR_MOUNT_ID_ATTRIBUTE ,
1617 MODULE_SSR_PAYLOAD_ATTRIBUTE ,
1718 MODULE_SSR_ROOT_ATTRIBUTE ,
@@ -209,7 +210,12 @@ export function createSsrMounter<
209210
210211 /* eslint-disable react/no-danger -- мы получаем много разметки не из реакта при работе с модулями */
211212 return (
212- < div { ...{ [ MODULE_SSR_ROOT_ATTRIBUTE ] : instanceId } } >
213+ < div
214+ { ...{
215+ [ MODULE_SSR_ROOT_ATTRIBUTE ] : instanceId ,
216+ [ MODULE_SSR_MODULE_ATTRIBUTE ] : moduleId ,
217+ } }
218+ >
213219 { stylesMode === 'inline'
214220 ? inlineStyles . map ( ( style ) => (
215221 < style
@@ -275,7 +281,7 @@ export function createSsrMounter<
275281 const hadServerHtmlRef = useRef ( false ) ;
276282
277283 if ( snapshotRef . current === null ) {
278- const { snapshot, hadServerHtml } = readServerMarkup ( instanceId ) ;
284+ const { snapshot, hadServerHtml } = readServerMarkup ( moduleId , instanceId ) ;
279285
280286 snapshotRef . current = snapshot ;
281287 hadServerHtmlRef . current = hadServerHtml ;
@@ -378,7 +384,10 @@ export function createSsrMounter<
378384 return (
379385 < div
380386 ref = { rootRef }
381- { ...{ [ MODULE_SSR_ROOT_ATTRIBUTE ] : instanceId } }
387+ { ...{
388+ [ MODULE_SSR_ROOT_ATTRIBUTE ] : instanceId ,
389+ [ MODULE_SSR_MODULE_ATTRIBUTE ] : moduleId ,
390+ } }
382391 dangerouslySetInnerHTML = { { __html : snapshotRef . current } }
383392 suppressHydrationWarning = { true }
384393 />
@@ -388,7 +397,13 @@ export function createSsrMounter<
388397 // Нет серверной разметки (например, клиентский SPA-переход) — рендерим пустой outlet
389398 // для обычного монтирования.
390399 return (
391- < div ref = { rootRef } { ...{ [ MODULE_SSR_ROOT_ATTRIBUTE ] : instanceId } } >
400+ < div
401+ ref = { rootRef }
402+ { ...{
403+ [ MODULE_SSR_ROOT_ATTRIBUTE ] : instanceId ,
404+ [ MODULE_SSR_MODULE_ATTRIBUTE ] : moduleId ,
405+ } }
406+ >
392407 < div { ...{ [ MODULE_SSR_MOUNT_ID_ATTRIBUTE ] : instanceId } } />
393408 </ div >
394409 ) ;
@@ -415,13 +430,17 @@ function safeStringify(value: unknown): string {
415430 }
416431}
417432
418- function readServerMarkup ( instanceId : string ) : { snapshot : string ; hadServerHtml : boolean } {
433+ function readServerMarkup (
434+ moduleId : string ,
435+ instanceId : string ,
436+ ) : { snapshot : string ; hadServerHtml : boolean } {
419437 if ( typeof document === 'undefined' ) {
420438 return { snapshot : '' , hadServerHtml : false } ;
421439 }
422440
423441 const root = document . querySelector (
424- `[${ MODULE_SSR_ROOT_ATTRIBUTE } ="${ cssEscape ( instanceId ) } "]` ,
442+ `[${ MODULE_SSR_ROOT_ATTRIBUTE } ="${ cssEscape ( instanceId ) } "]` +
443+ `[${ MODULE_SSR_MODULE_ATTRIBUTE } ="${ cssEscape ( moduleId ) } "]` ,
425444 ) ;
426445
427446 if ( ! root ) {
0 commit comments