export default class extends HTMLElement {
connectedCallback () {
this.form.addEventListener('submit', this.onSubmit)
this.form.addEventListener('turbo:before-fetch-response', this.onFetchResponse)
}
disconnectedCallback () {
this.form.removeEventListener('submit', this.onSubmit)
this.form.removeEventListener('turbo:before-fetch-response', this.onFetchResponse)
}
onSubmit = () => {
this.element.classList.add('invisible')
}
onFetchResponse = (event) => {
if (event.detail.fetchResponse.succeeded) {
this.element.classList.remove('invisible')
}
}
get element () {
return document.getElementById(this.dataset.elementId)
}
get form () {
return this.closest('form')
}
}