1- import {
2- createElement ,
3- useContext ,
4- useEffect ,
5- useRef ,
6- type ReactNode ,
7- } from "react" ;
8- import type { FunctionComponent } from "react" ;
1+ import * as React from "react" ;
92import { get , type Readable } from "svelte/store" ;
103import SvelteWrapper from "./internal/SvelteWrapper.svelte" ;
114import SvelteToReactContext from "./internal/SvelteToReactContext.js" ;
@@ -24,23 +17,23 @@ export type SvelteConstructor<Props = any, Events = any, Slot = any> = {
2417 */
2518export default function reactify < P = any , E = any > (
2619 SvelteComponent : SvelteConstructor < P , E >
27- ) : FunctionComponent < P & SvelteEventHandlers < E > > {
20+ ) : React . FunctionComponent < P & SvelteEventHandlers < E > > {
2821 const { name } = SvelteComponent as any ;
2922 const named = {
3023 [ name ] ( options : any ) {
3124 const { children } = options ;
3225 const props = extractProps ( options ) ;
3326 const events = extractListeners ( options ) ;
3427
35- const wrapperRef = useRef < HTMLElement > ( ) ;
36- const svelteRef = useRef < SvelteWrapper > ( ) ;
37- const slotRef = useRef < HTMLElement > ( ) ;
38- const childrenRef = useRef < HTMLElement > ( ) ;
28+ const wrapperRef = React . useRef < HTMLElement > ( ) ;
29+ const svelteRef = React . useRef < SvelteWrapper > ( ) ;
30+ const slotRef = React . useRef < HTMLElement > ( ) ;
31+ const childrenRef = React . useRef < HTMLElement > ( ) ;
3932
40- const context = useContext ( SvelteToReactContext ) ;
33+ const context = React . useContext ( SvelteToReactContext ) ;
4134
4235 // Mount Svelte component
43- useEffect ( ( ) => {
36+ React . useEffect ( ( ) => {
4437 const target = wrapperRef . current ;
4538 if ( ! target ) {
4639 return undefined ;
@@ -71,14 +64,14 @@ export default function reactify<P = any, E = any>(
7164 } , [ wrapperRef ] ) ;
7265
7366 // Sync props & events
74- useEffect ( ( ) => {
67+ React . useEffect ( ( ) => {
7568 if ( svelteRef . current ) {
7669 svelteRef . current . $set ( { props, events } ) ;
7770 }
7871 } , [ props , svelteRef ] ) ;
7972
8073 // Sync children/slot
81- useEffect ( ( ) => {
74+ React . useEffect ( ( ) => {
8275 if ( childrenRef . current ) {
8376 if (
8477 slotRef . current &&
@@ -101,22 +94,22 @@ export default function reactify<P = any, E = any>(
10194 context : extractSvelteContext ( context ) ,
10295 $$slots,
10396 } ) ;
104- return createElement ( "svelte-wrapper" , {
97+ return React . createElement ( "svelte-wrapper" , {
10598 style : {
10699 display : "contents" ,
107100 } ,
108101 dangerouslySetInnerHTML : { __html : result . html } ,
109102 } ) ;
110103 }
111104
112- return createElement (
105+ return React . createElement (
113106 "svelte-wrapper" ,
114107 {
115108 ref : wrapperRef ,
116109 style : { display : "contents" } ,
117110 } ,
118111 children
119- ? createElement (
112+ ? React . createElement (
120113 "react-children" ,
121114 {
122115 ref : childrenRef ,
@@ -164,7 +157,7 @@ function extractSvelteContext(reactContext: Readable<any> | undefined) {
164157}
165158
166159function detectChildren (
167- children : ReactNode | ReactNode [ ] | undefined
160+ children : React . ReactNode | React . ReactNode [ ] | undefined
168161) : boolean {
169162 if ( children === undefined ) {
170163 return false ;
0 commit comments