Fix extensions regression bug (#489)

* add output div visibility rule and make sure CustomWidget is being registered

* add new runAfterRuntimeInitialized method that classes can use to run code only after runtime actually initialized

* replace setTimout with proper event to wait for runtime to be completed

* replace setTimout on pyinpytbox with proper event to wait for runtime to be completed
This commit is contained in:
Fabio Pliger
2022-06-01 22:39:05 +02:00
committed by GitHub
parent d6a88d4c9e
commit f60dd6a788
3 changed files with 16 additions and 4 deletions

View File

@@ -184,6 +184,7 @@ export class BaseEvalElement extends HTMLElement {
this.errorElement.children[this.errorElement.children.length - 1].setAttribute('error', '');
this.errorElement.hidden = false;
this.errorElement.style.display = 'block';
this.errorElement.style.visibility = 'visible';
}
} // end evaluate
@@ -200,6 +201,16 @@ export class BaseEvalElement extends HTMLElement {
console.log(err);
}
} // end eval
runAfterRuntimeInitialized(callback: () => Promise<void>){
pyodideLoaded.subscribe(value => {
if ('runPythonAsync' in value) {
setTimeout(async () => {
await callback();
}, 100);
}
});
}
}
function createWidget(name: string, code: string, klass: string) {
@@ -270,6 +281,7 @@ function createWidget(name: string, code: string, klass: string) {
}
}
}
const xPyWidget = customElements.define(name, CustomWidget);
}
export class PyWidget extends HTMLElement {