From 247475ef8bc0d9f69ee8c1c032da25bc4c7d1185 Mon Sep 17 00:00:00 2001 From: Geoff Doty Date: Sat, 20 Jul 2024 16:20:12 -0400 Subject: [PATCH] fix attribute rendering issue --- src/tag.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/tag.js b/src/tag.js index c1fc498..b234289 100644 --- a/src/tag.js +++ b/src/tag.js @@ -14,15 +14,19 @@ export default function h(tag, ...args) { // support all scalar values as TextNodes const isScalar = (value) => ["boolean", "string", "number"].includes(typeof value); - args.forEach((arg) => { - if (isScalar(arg)) { - el.appendChild(document.createTextNode(arg)); - } else if (Array.isArray(arg)) { - el.append(...arg); + for(let i = 0; i < args.length; i++) { + if (isScalar(args[i])) { + el.appendChild(document.createTextNode(args[i])); + } else if (Array.isArray(args[i])) { + el.append(...args[i]); } else { - Object.assign(el, arg); + for(const [k,v] of Object.entries(args[i])) { + // if not both ways, some attributes do not render + el.setAttribute(k, v); + el[k] = v; + } } - }); + } return el; }