Sha256: 8f8214338d6687e6d35248524c59449b4a4dc3346f116a3aa3df5884b99f8822

Contents?: true

Size: 1.04 KB

Versions: 27

Compression:

Stored size: 1.04 KB

Contents

import { Controller } from "@hotwired/stimulus"

export default class extends Controller {
	
	connect() {
		this.element[this.identifier] = this
	}
	
	doneLoading() {
		// this.element.disabled = false
		this.element.style.width = 'auto'
		this.element.innerHTML = this.originalHTML
	}
	
	loading() {
		// this.element.disabled = true
		this.element.style.width = `${this.element.offsetWidth}px`
		this.originalHTML = this.element.innerHTML // Store original HTML
		
		this.element.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

27 entries across 27 versions & 1 rubygems

Version Path
spina-2.18.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.17.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.16.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.15.1 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.15.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.14.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.13.1 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.13.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.12.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.11.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.10.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.9.1 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.9.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.8.1 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.8.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.7.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.6.2 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.6.1 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.6.0 app/assets/javascripts/spina/controllers/button_controller.js
spina-2.5.0 app/assets/javascripts/spina/controllers/button_controller.js