123456789101112131415161718192021222324252627282930313233343536373839 |
- export function setAttributeInner(node, field, value, ns) {
- const name = field;
- if (ns === "style") {
- // ????? why do we need to do this
- if (node.style === undefined) {
- node.style = {};
- }
- node.style[name] = value;
- } else if (ns != null && ns != undefined) {
- node.setAttributeNS(ns, name, value);
- } else {
- switch (name) {
- case "value":
- if (value !== node.value) {
- node.value = value;
- }
- break;
- case "initial_value":
- node.defaultValue = value;
- break;
- case "checked":
- node.checked = value === "true" || value === true;
- break;
- case "selected":
- node.selected = value === "true" || value === true;
- break;
- case "dangerous_inner_html":
- node.innerHTML = value;
- break;
- default:
- // https://github.com/facebook/react/blob/8b88ac2592c5f555f315f9440cbb665dd1e7457a/packages/react-dom/src/shared/DOMProperty.js#L352-L364
- if (value === "false" && bool_attrs.hasOwnProperty(name)) {
- node.removeAttribute(name);
- } else {
- node.setAttribute(name, value);
- }
- }
- }
- }
|