This repository was archived by the owner on Oct 29, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change 5
5
EnvironmentDelegate ,
6
6
DynamicScopeImpl ,
7
7
renderSync ,
8
+ rehydrationBuilder ,
8
9
} from '@glimmer/runtime' ;
9
10
import {
10
11
Cursor as GlimmerCursor ,
@@ -32,6 +33,7 @@ export interface RenderComponentOptions {
32
33
element : Element ;
33
34
args ?: Dict < unknown > ;
34
35
owner ?: object ;
36
+ rehydrate ?: boolean ;
35
37
}
36
38
37
39
type ResolveFn = ( ) => void ;
@@ -72,7 +74,8 @@ async function renderComponent(
72
74
{ document } ,
73
75
new ClientEnvDelegate ( ) ,
74
76
args ,
75
- owner
77
+ owner ,
78
+ options . rehydrate ? rehydrationBuilder : clientBuilder
76
79
) ;
77
80
const result = renderSync ( env , iterator ) ;
78
81
results . push ( result ) ;
Original file line number Diff line number Diff line change @@ -34,4 +34,17 @@ module(`[@glimmer/core] interactive rendering tests`, () => {
34
34
35
35
assert . equal ( containerElement . innerHTML , '<p>foo</p>bar<h1>Hello Glimmer!</h1>' ) ;
36
36
} ) ;
37
+
38
+ test ( 'rehydrates a component from existing markup when rehydrate option is set' , async ( assert ) => {
39
+ const containerElement = document . createElement ( 'div' ) ;
40
+ containerElement . innerHTML =
41
+ '<!--%+b:0%--><!--%+b:1%--><h1>Hello World</h1><!--%-b:1%--><!--%-b:0%-->' ;
42
+
43
+ await render ( createTemplate ( `<h1>Hello World</h1>` ) , {
44
+ element : containerElement ,
45
+ rehydrate : true ,
46
+ } ) ;
47
+
48
+ assert . equal ( containerElement . innerHTML , '<h1>Hello World</h1>' ) ;
49
+ } ) ;
37
50
} ) ;
You can’t perform that action at this time.
0 commit comments