diff --git a/addons/van_jsx/src/createElement.js b/addons/van_jsx/src/createElement.js index 16486003..4d8f4967 100644 --- a/addons/van_jsx/src/createElement.js +++ b/addons/van_jsx/src/createElement.js @@ -1,7 +1,8 @@ import van from "vanjs-core"; import { setAttribute } from "./hyper"; -const createElement = (jsxTag, { children, style, ref, ...props }) => { +const createElement = (jsxTag, allProps) => { if (typeof jsxTag === "string") { + const { children, ref, ...props } = allProps // TODO VanNode to VanElement const ele = van.tags[jsxTag](children); for (const [key, value] of Object.entries(props ?? {})) { @@ -27,7 +28,7 @@ const createElement = (jsxTag, { children, style, ref, ...props }) => { return ele; } if (typeof jsxTag === "function") { - return jsxTag({ ...props, ref, style, children }); + return jsxTag(allProps); } }; export default createElement; diff --git a/addons/van_jsx/src/index.d.ts b/addons/van_jsx/src/index.d.ts index 14a10fa7..f222f5c7 100644 --- a/addons/van_jsx/src/index.d.ts +++ b/addons/van_jsx/src/index.d.ts @@ -2,5 +2,6 @@ import { State, StateView } from "vanjs-core"; export declare function createState(initialValue: T): State; export declare function createState(initialValue: T | null): StateView; export declare function createState(): State; -export { default as createElement, default as jsx, default as jsxDEV, } from "./createElement"; +export declare function Fragment({ children }: { children?: VanNode | undefined }): VanNode | [VanNode] | undefined; +export { default as createElement, default as jsx, default as jsxs, default as jsxDEV, } from "./createElement"; export * from "./type"; diff --git a/addons/van_jsx/src/index.js b/addons/van_jsx/src/index.js index 2bf1dae9..b992ab24 100644 --- a/addons/van_jsx/src/index.js +++ b/addons/van_jsx/src/index.js @@ -2,4 +2,7 @@ import van from "vanjs-core"; export function createState(v) { return van.state(v); } -export { default as createElement, default as jsx, default as jsxDEV, } from "./createElement"; +export function Fragment({children}) { + return children; +} +export { default as createElement, default as jsx, default as jsxs, default as jsxDEV, } from "./createElement"; diff --git a/addons/van_jsx/src/jsx-runtime.js b/addons/van_jsx/src/jsx-runtime.js new file mode 100644 index 00000000..6d1e0ee8 --- /dev/null +++ b/addons/van_jsx/src/jsx-runtime.js @@ -0,0 +1 @@ +export * from "./index";