pop
Version:
Pop is a [Hyperapp](https://github.com/hyperapp/hyperapp) / [Ultradom](https://github.com/ultradom/ultradom) spin-off project — yet another micro-framework for creating graphical user interfaces. This is not the final title, but let's go with that for now
39 lines (36 loc) • 1.12 kB
JavaScript
import { clone } from "./clone"
import { eventListener } from "./eventListener"
export function updateAttribute(element, name, value, oldValue, isSVG) {
if (name === "key") {
} else if (name === "style") {
for (var i in clone(oldValue, value)) {
var style = value == null || value[i] == null ? "" : value[i]
if (i[0] === "-") {
element[name].setProperty(i, style)
} else {
element[name][i] = style
}
}
} else {
if (name[0] === "o" && name[1] === "n") {
if (!element.events) {
element.events = {}
}
element.events[(name = name.slice(2))] = value
if (value) {
if (!oldValue) {
element.addEventListener(name, eventListener)
}
} else {
element.removeEventListener(name, eventListener)
}
} else if (name in element && name !== "list" && !isSVG) {
element[name] = value == null ? "" : value
} else if (value != null && value !== false) {
element.setAttribute(name, value)
}
if (value == null || value === false) {
element.removeAttribute(name)
}
}
}