Skip to content

Commit 5eb530b

Browse files
committed
fix
1 parent 59c1d96 commit 5eb530b

2 files changed

Lines changed: 14 additions & 9 deletions

File tree

DomKit.js

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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) => {

DomKit.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)