mirror of
https://github.com/DioxusLabs/dioxus
synced 2024-09-20 22:31:58 +00:00
optimize the remove_attribute function
This commit is contained in:
parent
79909060cd
commit
28ae065218
2 changed files with 46 additions and 30 deletions
|
@ -159,22 +159,29 @@ class Interpreter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RemoveAttribute(root, field, ns) {
|
RemoveAttribute(root, field, ns) {
|
||||||
const name = field;
|
|
||||||
const node = this.nodes[root];
|
const node = this.nodes[root];
|
||||||
if (ns == "style") {
|
if (!ns) {
|
||||||
|
switch (field) {
|
||||||
|
case "value":
|
||||||
|
node.value = "";
|
||||||
|
break;
|
||||||
|
case "checked":
|
||||||
|
node.checked = false;
|
||||||
|
break;
|
||||||
|
case "selected":
|
||||||
|
node.selected = false;
|
||||||
|
break;
|
||||||
|
case "dangerous_inner_html":
|
||||||
|
node.innerHTML = "";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
node.removeAttribute(field);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (ns == "style") {
|
||||||
node.style.removeProperty(name);
|
node.style.removeProperty(name);
|
||||||
} else if (ns !== null || ns !== undefined) {
|
|
||||||
node.removeAttributeNS(ns, name);
|
|
||||||
} else if (name === "value") {
|
|
||||||
node.value = "";
|
|
||||||
} else if (name === "checked") {
|
|
||||||
node.checked = false;
|
|
||||||
} else if (name === "selected") {
|
|
||||||
node.selected = false;
|
|
||||||
} else if (name === "dangerous_inner_html") {
|
|
||||||
node.innerHTML = "";
|
|
||||||
} else {
|
} else {
|
||||||
node.removeAttribute(name);
|
node.removeAttributeNS(ns, field);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -230,23 +230,32 @@ mod js {
|
||||||
"{node = nodes[$id$]; SetAttributeInner(node, $field$, $value$, $ns$);}"
|
"{node = nodes[$id$]; SetAttributeInner(node, $field$, $value$, $ns$);}"
|
||||||
}
|
}
|
||||||
fn remove_attribute(id: u32, field: &str<u8, attr>, ns: &str<u8, ns_cache>) {
|
fn remove_attribute(id: u32, field: &str<u8, attr>, ns: &str<u8, ns_cache>) {
|
||||||
r#"{name = $field$;
|
r#"{
|
||||||
node = nodes[$id$];
|
node = nodes[$id$];
|
||||||
if (ns == "style") {
|
if (!ns) {
|
||||||
node.style.removeProperty(name);
|
switch (field) {
|
||||||
} else if (ns !== null && ns !== undefined && ns !== "") {
|
case "value":
|
||||||
node.removeAttributeNS(ns, name);
|
node.value = "";
|
||||||
} else if (name === "value") {
|
break;
|
||||||
node.value = "";
|
case "checked":
|
||||||
} else if (name === "checked") {
|
node.checked = false;
|
||||||
node.checked = false;
|
break;
|
||||||
} else if (name === "selected") {
|
case "selected":
|
||||||
node.selected = false;
|
node.selected = false;
|
||||||
} else if (name === "dangerous_inner_html") {
|
break;
|
||||||
node.innerHTML = "";
|
case "dangerous_inner_html":
|
||||||
} else {
|
node.innerHTML = "";
|
||||||
node.removeAttribute(name);
|
break;
|
||||||
}}"#
|
default:
|
||||||
|
node.removeAttribute(field);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (ns == "style") {
|
||||||
|
node.style.removeProperty(name);
|
||||||
|
} else {
|
||||||
|
node.removeAttributeNS(ns, field);
|
||||||
|
}
|
||||||
|
}"#
|
||||||
}
|
}
|
||||||
fn assign_id(ptr: u32, len: u8, id: u32) {
|
fn assign_id(ptr: u32, len: u8, id: u32) {
|
||||||
"{nodes[$id$] = LoadChild($ptr$, $len$);}"
|
"{nodes[$id$] = LoadChild($ptr$, $len$);}"
|
||||||
|
|
Loading…
Reference in a new issue