1
- import { hydrate } from "react-dom" ;
2
1
import { createElement } from "react" ;
2
+ import { hydrateRoot } from 'react-dom/client' ;
3
3
4
4
export function ktlHelpers ( ) {
5
5
const comment = " ktl_component: " ;
@@ -25,26 +25,7 @@ export function ktlHelpers() {
25
25
26
26
export function initComponent ( node , Component , props ) {
27
27
const fake_node = document . createElement ( 'div' ) ;
28
- hydrate ( createElement ( Component , props ) , fake_node ) ;
28
+ fake_node . appendChild ( node . cloneNode ( true ) ) ;
29
29
node . replaceWith ( fake_node ) ;
30
- }
31
-
32
- export function replaceByComponent ( node , Component , props ) {
33
- const parentNode = node . parentNode ;
34
- const fakeNode = document . createElement ( 'div' ) ;
35
-
36
- hydrate ( createElement ( Component , props ) , fakeNode ) ;
37
-
38
- let renderedNode = fakeNode . lastChild ;
39
-
40
- if ( fakeNode . children . length === 1 ) {
41
- node . replaceWith ( renderedNode ) ;
42
- return ;
43
- }
44
-
45
- do {
46
- parentNode . insertBefore ( node , renderedNode ) ;
47
- } while ( renderedNode = renderedNode . previousSibling )
48
-
49
- parentNode . removeChild ( node ) ;
30
+ hydrateRoot ( fake_node , createElement ( Component , props ) ) ;
50
31
}
0 commit comments