Merge pull request #275 from BarryYan/master

fix: add ns param for removeAttribute
This commit is contained in:
Jonathan Kelley authored and GitHub committed 2022-02-25 11:50:21 -05:00
commit d8718efed6
4 files changed
+21 -11

No files matched your search

+10 -2
View File
@@ -107,6 +107,7 @@ pub enum DomEdit<'bump> {
RemoveAttribute {
root: u64,
name: &'static str,
ns: Option<&'bump str>,
},
}
@@ -218,8 +219,15 @@ impl<'a> Mutations<'a> {
}
pub(crate) fn remove_attribute(&mut self, attribute: &Attribute, root: u64) {
let name = attribute.name;
self.edits.push(RemoveAttribute { name, root });
let Attribute {
name, namespace, ..
} = attribute;
self.edits.push(RemoveAttribute {
name,
ns: *namespace,
root,
});
}
pub(crate) fn mark_dirty_scope(&mut self, scope: ScopeId) {
+1 -1
View File
@@ -63,5 +63,5 @@ extern "C" {
);
#[wasm_bindgen(method)]
pub fn RemoveAttribute(this: &Interpreter, root: u64, field: &str);
pub fn RemoveAttribute(this: &Interpreter, root: u64, field: &str, ns: Option<&str>);
}
+8 -6
View File
@@ -103,7 +103,7 @@ export class Interpreter {
if (ns === "style") {
// @ts-ignore
node.style[name] = value;
} else if (ns != null || ns != undefined) {
} else if (ns !== null || ns !== undefined) {
node.setAttributeNS(ns, name, value);
} else {
switch (name) {
@@ -131,10 +131,12 @@ export class Interpreter {
}
}
}
RemoveAttribute(root, name) {
RemoveAttribute(root, field, ns) {
const name = field;
const node = this.nodes[root];
if (name === "value") {
if (ns !== null || ns !== undefined) {
node.removeAttributeNS(ns, name);
} else if (name === "value") {
node.value = "";
} else if (name === "checked") {
node.checked = false;
@@ -258,7 +260,7 @@ export class Interpreter {
}
}
if (realId == null) {
if (realId === null) {
return;
}
window.ipc.postMessage(
@@ -279,7 +281,7 @@ export class Interpreter {
this.SetAttribute(edit.root, edit.field, edit.value, edit.ns);
break;
case "RemoveAttribute":
this.RemoveAttribute(edit.root, edit.name);
this.RemoveAttribute(edit.root, edit.name, edit.ns);
break;
}
}
+2 -2
View File
@@ -127,8 +127,8 @@ impl WebsysDom {
self.interpreter.RemoveEventListener(root, event)
}
DomEdit::RemoveAttribute { root, name } => {
self.interpreter.RemoveAttribute(root, name)
DomEdit::RemoveAttribute { root, name, ns } => {
self.interpreter.RemoveAttribute(root, name, ns)
}
DomEdit::CreateTextNode { text, root } => {