chore: clean up interpreter and bindings

This commit is contained in:
Jonathan Kelley committed 2022-12-05 16:47:04 -08:00
1 parent 7b1cdb7d85
commit b182a6ee75
17 files changed
+34 -108

No files matched your search

+2 -2
View File
@@ -12,7 +12,7 @@ extern "C" {
pub fn new(arg: Element) -> Interpreter;
#[wasm_bindgen(method)]
pub fn SaveTemplate(this: &Interpreter, nodes: Vec<Node>, name: &str);
pub fn SaveTemplate(this: &Interpreter, template: JsValue);
#[wasm_bindgen(method)]
pub fn MountToRoot(this: &Interpreter);
@@ -58,8 +58,8 @@ extern "C" {
this: &Interpreter,
name: &str,
id: u32,
handler: &Function,
bubbles: bool,
handler: &Function,
);
#[wasm_bindgen(method)]
+7 -15
View File
@@ -137,7 +137,7 @@ export class Interpreter {
this.stack.push(el);
this.nodes[root] = el;
}
NewEventListener(event_name, root, handler, bubbles) {
NewEventListener(event_name, root, bubbles, handler) {
const element = this.nodes[root];
element.setAttribute("data-dioxus-id", `${root}`);
this.listeners.create(event_name, element, handler, bubbles);
@@ -210,7 +210,7 @@ export class Interpreter {
}
}
handleEdits(edits) {
// a json blob of things
for (let template of edits.templates) {
this.SaveTemplate(template);
}
@@ -219,15 +219,15 @@ export class Interpreter {
this.handleEdit(edit);
}
}
SaveTemplate(template) {
console.log("saving template", template);
let roots = [];
for (let root of template.roots) {
roots.push(this.MakeTemplateNode(root));
}
console.log("saving template", template.name, roots);
this.templates[template.name] = roots;
}
MakeTemplateNode(node) {
console.log("making template node", node);
switch (node.type) {
@@ -340,17 +340,12 @@ export class Interpreter {
this.RemoveAttribute(edit.id, edit.name, edit.ns);
break;
case "RemoveEventListener":
this.RemoveEventListener(edit.id, edit.event_name);
this.RemoveEventListener(edit.id, edit.name);
break;
case "NewEventListener":
// console.log("creating listener! ", edit);
// this handler is only provided on desktop implementations since this
// method is not used by the web implementation
let handler = (event) => {
console.log("event", event);
let target = event.target;
if (target != null) {
let realId = target.getAttribute(`data-dioxus-id`);
@@ -431,17 +426,14 @@ export class Interpreter {
}
window.ipc.postMessage(
serializeIpcMessage("user_event", {
event: edit.event_name,
event: edit.name,
mounted_dom_id: parseInt(realId),
contents: contents,
})
);
}
};
console.log("adding event listener", edit);
this.NewEventListener(edit.event_name, edit.id, handler, event_bubbles(edit.event_name));
this.NewEventListener(edit.name, edit.id, event_bubbles(edit.name), handler);
break;
}
}