-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
update.js
40 lines (33 loc) · 1.29 KB
/
update.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import * as dom from '../../src/utils/dom/index.js'
import { warn } from '../../src/utils/utils.js'
import sweetAlert from '../sweetalert2.js'
import privateProps from '../privateProps.js'
/**
* Updates popup parameters.
*/
export function update (params) {
const popup = dom.getPopup()
const innerParams = privateProps.innerParams.get(this)
if (!popup || dom.hasClass(popup, innerParams.hideClass.popup)) {
return warn(`You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.`)
}
const validUpdatableParams = {}
// assign valid params from `params` to `defaults`
Object.keys(params).forEach(param => {
if (sweetAlert.isUpdatableParameter(param)) {
validUpdatableParams[param] = params[param]
} else {
warn(`Invalid parameter to update: "${param}". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js`)
}
})
const updatedParams = Object.assign({}, innerParams, validUpdatableParams)
dom.render(this, updatedParams)
privateProps.innerParams.set(this, updatedParams)
Object.defineProperties(this, {
params: {
value: Object.assign({}, this.params, params),
writable: false,
enumerable: true
}
})
}