import { Controller } from 'stimulus' /* * Sólo permite enviar el formulario de contacto después de unos * segundos, para evitar el spam. */ export default class extends Controller { static targets = [ 'submit' ] connect () { if (!this.hasSubmitTarget) return this.submitTarget.disabled = true this._value = this.submitTarget.value // Esperar un minuto desde que se carga la página hasta que se // permite enviar. this._interval = setInterval(() => { const delay = this.delay if (this.delay == 0) { clearInterval(this._interval) this.submitTarget.disabled = false this.submitTarget.value = this._value } else { this.delay = delay - 1 } }, 1000) } get delay () { const delay = parseInt(this.element.dataset.delay) return isNaN(delay) ? 0 : delay } set delay (value) { this.element.dataset.delay = value this.submitTarget.value = `${this._value} (${value})` } }