@@ -154,30 +154,35 @@ const DomKit = (function () {
154154 const createDomElement = ( vnode ) => {
155155 // Handle text nodes
156156 if ( typeof vnode === "string" || typeof vnode === "number" ) {
157- return document . createTextNode ( vnode ) ;
157+ return document . createTextNode ( vnode ) ;
158158 }
159159
160160 // Handle component references
161161 if ( typeof vnode . tag === "function" ) {
162- const componentResult = vnode . tag ( vnode . props || { } ) ;
163- return createDomElement ( componentResult ) ;
162+ const componentResult = vnode . tag ( vnode . props || { } ) ;
163+ return createDomElement ( componentResult ) ;
164164 }
165165
166166 // Regular elements
167167 const element = document . createElement ( vnode . tag ) ;
168168
169169 // Set properties
170170 if ( vnode . props ) {
171- updateProps ( element , vnode . props , { } ) ;
171+ updateProps ( element , vnode . props , { } ) ;
172172 }
173173
174- // Append children
175- ( vnode . children || [ ] ) . forEach ( ( child ) => {
176- element . appendChild ( createDomElement ( child ) ) ;
174+ // Ensure children is an array and append children
175+ const children = Array . isArray ( vnode . children ) ? vnode . children :
176+ ( vnode . children ? [ vnode . children ] : [ ] ) ;
177+
178+ children . forEach ( ( child ) => {
179+ if ( child !== null && child !== undefined ) {
180+ element . appendChild ( createDomElement ( child ) ) ;
181+ }
177182 } ) ;
178183
179184 return element ;
180- } ;
185+ } ;
181186
182187 // Render virtual DOM to real DOM with diffing
183188 const render = ( vnode , container ) => {
0 commit comments