Sweetalert2 disableButtons()
by cormip
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/sweetalert2/latest/sweetalert2.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/sweetalert2/latest/sweetalert2.min.css">
<button id="button">SHOW SWAL2 MODAL</button>
CSS
#button {
font-size: 2em;
padding: .5em 1em;
}
JavaScript
//import Swal from './sweetalert2'
$('#button').click(() => {
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(false)
}, 2000)
})
swal.fire({
title: 'Input something',
input: 'text',
showCancelButton: true,
preConfirm: async function(code) {
const el = Swal.getHtmlContainer()
Swal.showLoading()
await promise1
.then (result => {
Swal.hideLoading()
throw new Error('Invalid 2FA Code...')
})
.catch(err => {
Swal.disableButtons()
Swal.hideLoading()
Swal.showValidationMessage(err.message)
let timeLeft = 10
timerId = setInterval(function() {
if (timeLeft < 0) {
clearTimeout(timerId)
el.innerHTML = 'Enter the code from your Authenticator App:'
Swal.enableButtons()
} else {
el.innerHTML = 'Retry in <span class="badge bg-warning text-dark">' + timeLeft + '</span> seconds...'
timeLeft--
}
}, 1000)
})
}
}).then(function(result) {
if (result) {
Swal.fire({
type: 'success',
html: 'You entered: <strong>' + result + '</strong>'
});
}
}).done();
});