Skip to content

Commit 6368ee5

Browse files
committed
refactor(LoadingButton): add data API implementation
1 parent e81ee89 commit 6368ee5

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

js/src/loading-button.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@ import { defineJQueryPlugin } from './util/index.js'
1818
const NAME = 'loading-button'
1919
const DATA_KEY = 'coreui.loading-button'
2020
const EVENT_KEY = `.${DATA_KEY}`
21+
const DATA_API_KEY = '.data-api'
2122

2223
const EVENT_START = `start${EVENT_KEY}`
2324
const EVENT_STOP = `stop${EVENT_KEY}`
25+
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
2426

2527
const CLASS_NAME_IS_LOADING = 'is-loading'
2628
const CLASS_NAME_LOADING_BUTTON_SPINNER = 'btn-loading-spinner'
2729

30+
const SELECTOR_DATA_TOGGLE = '[data-coreui-toggle="loading-button"]'
31+
2832
const Default = {
2933
disabledOnLoading: false,
3034
spinner: true,
@@ -171,6 +175,18 @@ class LoadingButton extends BaseComponent {
171175
}
172176
}
173177

178+
/**
179+
* Data API implementation
180+
*/
181+
182+
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, event => {
183+
event.preventDefault()
184+
const button = event.target.closest(SELECTOR_DATA_TOGGLE)
185+
const data = LoadingButton.getOrCreateInstance(button)
186+
187+
data.start()
188+
})
189+
174190
/**
175191
* jQuery
176192
*/

0 commit comments

Comments
 (0)