diff --git a/hmr/hmr-react.tsx b/hmr/hmr-react.tsx index 479ddee..d139326 100644 --- a/hmr/hmr-react.tsx +++ b/hmr/hmr-react.tsx @@ -49,7 +49,7 @@ export const HMR = export type StateType = boolean|number|string|Record export type StateCapture = {state:StateType, set:ReactParts.StateUpdater, reload:number}; -type FuncArgs = [element:keyof ReactParts.JSX.IntrinsicElements, props:Record, children:ReactParts.JSX.Element[]]; +type FuncArgs = [element:keyof ReactParts.JSX.IntrinsicElements, props:Record, children?:ReactParts.JSX.Element[]]; const H = ReactParts.createElement; @@ -172,6 +172,8 @@ const ProxyReducer =(inReducer:(inState:Storelike, inAction:string)=>Storelike, }; export * from "react-original"; -const Fragment = ReactParts.Fragment; -export {ProxyCreate as createElement, ProxyCreate as jsx, ProxyCreate as jsxs, Fragment, ProxyState as useState, ProxyReducer as useReducer }; -export default {...ReactParts, createElement:ProxyCreate, jsx:ProxyCreate, jsxs:ProxyCreate, Fragment, useState:ProxyState, useReducer:ProxyReducer}; \ No newline at end of file + +const ProxyFragment = ReactParts.Fragment; +const ProxyJSX = (type:keyof ReactParts.JSX.IntrinsicElements, props:object, key:string)=>ProxyCreate(type, {...props, key}); +export {ProxyCreate as createElement, ProxyJSX as jsx, ProxyJSX as jsxs, ProxyFragment as Fragment, ProxyState as useState, ProxyReducer as useReducer }; +export default {...ReactParts, createElement:ProxyCreate, jsx:ProxyJSX, jsxs:ProxyJSX, Fragment: ProxyFragment, useState:ProxyState, useReducer:ProxyReducer}; \ No newline at end of file diff --git a/server.ts b/server.ts index e44ee16..dd2904a 100644 --- a/server.ts +++ b/server.ts @@ -90,7 +90,7 @@ for(const key in denoBody.imports) denoBody.imports[key] = "/>/"+value; } } -const react = denoBody.compilerOptions.jsxImportSource; +const react = denoBody.compilerOptions.jsxImportSource || "react"; denoBody.imports["react-original"] = denoBody.imports[react]; denoBody.imports[react] = "/^/hmr/hmr-react.tsx"; denoBody.imports[react+"/jsx-runtime"] = "/^/hmr/hmr-react.tsx";