Sha256: 1564c81d5fec4bc98c7f3fe25afbafeb206d6303b1654674efc06d9d7b35c33b
Contents?: true
Size: 1.11 KB
Versions: 3
Compression:
Stored size: 1.11 KB
Contents
import { Controller } from "stimulus" export default class extends Controller { static get targets() { return [ "button" ] } connect() { this.element[this.identifier] = this } doneLoading() { // this.element.disabled = false this.buttonTarget.style.width = 'auto' this.buttonTarget.innerHTML = this.originalHTML } loading() { // this.element.disabled = true this.buttonTarget.style.width = `${this.element.offsetWidth}px` this.originalHTML = this.buttonTarget.innerHTML // Store original HTML this.buttonTarget.innerHTML = ` <svg class="animate-spin -ml-1 mr-2 h-4 w-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"> <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle> <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path> </svg> ${this.element.dataset.loadingMessage} ` } get originalHTML() { return this.original_html } set originalHTML(html) { this.original_html = html } }
Version data entries
3 entries across 3 versions & 1 rubygems