Skip to content

Commit 3b2a3b0

Browse files
committed
refactor(CPicker): add new options, improve syntax
1 parent 6cc0979 commit 3b2a3b0

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

js/src/picker.js

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* --------------------------------------------------------------------------
3-
* CoreUI (v4.2.0-alpha.0): picker.js
4-
* Licensed under MIT (https://coreui.io/license)
3+
* CoreUI PRO (v4.2.0-beta.2): picker.js
4+
* License (https://coreui.io/pro/license-new/)
55
* --------------------------------------------------------------------------
66
*/
77

@@ -24,19 +24,23 @@ const EVENT_KEY = `.${DATA_KEY}`
2424
const EVENT_CANCEL = `onCancelClick${EVENT_KEY}`
2525

2626
const Default = {
27-
cancelButtonText: 'Cancel',
27+
cancelButtonLabel: 'Cancel',
28+
cancelButtonClasses: ['btn', 'btn-sm', 'btn-ghost-primary'],
29+
confirmButtonLabel: 'OK',
30+
confirmButtonClasses: ['btn', 'btn-sm', 'btn-primary'],
2831
container: 'dropdown',
2932
disabled: false,
30-
footer: false,
31-
okButtonText: 'OK'
33+
footer: false
3234
}
3335

3436
const DefaultType = {
35-
cancelButtonText: 'string',
37+
cancelButtonLabel: 'string',
38+
cancelButtonClasses: '(array|string)',
39+
confirmButtonLabel: 'string',
40+
confirmButtonClasses: '(array|string)',
3641
container: 'string',
3742
disabled: 'boolean',
38-
footer: 'boolean',
39-
okButtonText: 'string'
43+
footer: 'boolean'
4044
}
4145

4246
/**
@@ -73,6 +77,14 @@ class Picker extends BaseComponent {
7377
return NAME
7478
}
7579

80+
_getButtonClasses(classes) {
81+
if (typeof classes === 'string') {
82+
return classes.split(' ')
83+
}
84+
85+
return classes
86+
}
87+
7688
// Private
7789
_createDropdown() {
7890
const dropdownEl = document.createElement('div')
@@ -104,18 +116,18 @@ class Picker extends BaseComponent {
104116
footerEl.classList.add('picker-footer')
105117

106118
const cancelButtonEl = document.createElement('button')
107-
cancelButtonEl.classList.add('btn', 'btn-sm', 'btn-ghost-primary')
119+
cancelButtonEl.classList.add(...this._getButtonClasses(this._config.cancelButtonClasses))
108120
cancelButtonEl.type = 'button'
109-
cancelButtonEl.innerHTML = this._config.cancelButtonText
121+
cancelButtonEl.innerHTML = this._config.cancelButtonLabel
110122
cancelButtonEl.addEventListener('click', () => {
111123
this._dropdown.hide()
112124
EventHandler.trigger(this._element, EVENT_CANCEL)
113125
})
114126

115127
const okButtonEl = document.createElement('button')
116-
okButtonEl.classList.add('btn', 'btn-sm', 'btn-primary')
128+
okButtonEl.classList.add(...this._getButtonClasses(this._config.confirmButtonClasses))
117129
okButtonEl.type = 'button'
118-
okButtonEl.innerHTML = this._config.okButtonText
130+
okButtonEl.innerHTML = this._config.confirmButtonLabel
119131
okButtonEl.addEventListener('click', () => {
120132
this._dropdown.hide()
121133
})

0 commit comments

Comments
 (0)