mirror of
https://github.com/pyscript/pyscript.git
synced 2022-05-01 19:47:48 +03:00
add handlers to input box as well
This commit is contained in:
@@ -20,7 +20,11 @@
|
||||
<body>
|
||||
<py-title>To Do List</py-title>
|
||||
<py-box widths="2/3;1/3">
|
||||
<py-inputbox id="new-task-content"></py-inputbox>
|
||||
<py-inputbox id="new-task-content">
|
||||
def on_keypress(e):
|
||||
if (e.code == "Enter"):
|
||||
add_task()
|
||||
</py-inputbox>
|
||||
<py-button id="new-task-btn" label="Add Task!">
|
||||
def on_click(evt):
|
||||
task = { "content": new_task_content.value, "done": False, "created_at": dt.now() }
|
||||
@@ -30,7 +34,6 @@
|
||||
</py-box>
|
||||
|
||||
<py-list id="myList"></py-list>
|
||||
|
||||
<py-repl id="my-repl" auto-generate="true"> </py-repl>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -23,7 +23,7 @@ export class PyInputBox extends BaseEvalElement {
|
||||
|
||||
|
||||
connectedCallback() {
|
||||
this.label = htmlDecode(this.innerHTML);
|
||||
this.code = htmlDecode(this.innerHTML);
|
||||
this.mount_name = this.id.split("-").join("_");
|
||||
this.innerHTML = '';
|
||||
|
||||
@@ -37,14 +37,23 @@ export class PyInputBox extends BaseEvalElement {
|
||||
|
||||
// now that we appended and the element is attached, lets connect with the event handlers
|
||||
// defined for this widget
|
||||
this.code = `${this.mount_name} = Element("${ mainDiv.id }")`;
|
||||
this.appendChild(mainDiv);
|
||||
this.code = this.code.split("self").join(this.mount_name);
|
||||
let registrationCode = `${this.mount_name} = Element("${ mainDiv.id }")`;
|
||||
if (this.code.includes("def on_keypress")){
|
||||
this.code = this.code.replace("def on_keypress", `def on_keypress_${this.mount_name}`);
|
||||
registrationCode += `\n${this.mount_name}.element.onkeypress = on_keypress_${this.mount_name}`
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
this.eval(this.code).then(() => {
|
||||
console.log('registered handlers');
|
||||
this.eval(registrationCode).then(() => {
|
||||
console.log('registered handlers');
|
||||
});
|
||||
});
|
||||
}, 4000);
|
||||
|
||||
console.log('py-title connected');
|
||||
|
||||
console.log('py-inputbox connected');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -140,7 +140,7 @@ class PyWidgetTheme:
|
||||
|
||||
|
||||
class PyListTemplate:
|
||||
theme = PyWidgetTheme("flex flex-col-reverse mt-4")
|
||||
theme = PyWidgetTheme("flex flex-col-reverse mt-8 mx-4")
|
||||
|
||||
|
||||
def __init__(self, parent):
|
||||
|
||||
Reference in New Issue
Block a user