diff options
Diffstat (limited to 'static/js/controllers/comments_controller.js')
-rw-r--r-- | static/js/controllers/comments_controller.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/static/js/controllers/comments_controller.js b/static/js/controllers/comments_controller.js new file mode 100644 index 0000000..611b2ee --- /dev/null +++ b/static/js/controllers/comments_controller.js @@ -0,0 +1,31 @@ +export class CommentsController { + constructor(domain, post) { + this.domain = domain; + this.post = post; + this.parser = new DOMParser(); + this.form_element = document.getElementById("comment-form"); + this.form_element.addEventListener("submit", this.submit.bind(this)); + } + + async submit(event) { + const form = new FormData(event.target); + form.append("domain", window.location.hostname); + + try { + const response = await fetch(`https://${this.domain}/${this.post}/comments`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: form + }); + const response_page = this.htmlFromResponse(response.body); + } catch(error) {} + } + + htmlFromResponse(body) { + return this.parser.parseFromString(body, "text/html"); + } + } + |