sparnatural
Version:
Visual client-side SPARQL query builder and knowledge graph exploration tool
44 lines (39 loc) • 1.36 kB
text/typescript
import { getSettings } from "../../../sparnatural/settings/defaultSettings";
import PlayBtn from "../buttons/PlayBtn";
import HTMLComponent from "../HtmlComponent";
import SparnaturalComponent from "../SparnaturalComponent";
import { SparnaturalElement } from "../../../SparnaturalElement";
class SubmitSection extends HTMLComponent {
playBtn: PlayBtn;
ParentSparnatural: SparnaturalComponent;
constructor(ParentComponent: HTMLComponent) {
super("submitSection", ParentComponent, null);
this.ParentSparnatural = ParentComponent as SparnaturalComponent;
}
render(): this {
super.render();
this.playBtn = new PlayBtn(this, this.submitAction).render();
return this;
}
// Make arrow function to bind the this lexically
// see: https://stackoverflow.com/questions/55088050/ts-class-method-is-undefined-in-callback
submitAction = () => {
if (getSettings().submitButton) {
console.log("SubmitSection: Submit button clicked");
let e = new CustomEvent(SparnaturalElement.EVENT_SUBMIT, {
bubbles: true,
detail: this.ParentSparnatural,
});
this.html[0].dispatchEvent(e);
console.log("Submit event dispatched.");
console.log(e);
}
};
enableSubmit() {
this.playBtn.enable();
}
disableSubmit() {
this.playBtn.disable();
}
}
export default SubmitSection;