49 lines
1013 B
TypeScript
49 lines
1013 B
TypeScript
|
import './public-path';
|
||
|
import axios from 'axios';
|
||
|
|
||
|
import ready from '../mastodon/ready';
|
||
|
|
||
|
async function checkConfirmation() {
|
||
|
const response = await axios.get('/api/v1/emails/check_confirmation');
|
||
|
|
||
|
if (response.data) {
|
||
|
window.location.href = '/start';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ready(() => {
|
||
|
setInterval(() => {
|
||
|
void checkConfirmation();
|
||
|
}, 5000);
|
||
|
|
||
|
document
|
||
|
.querySelectorAll<HTMLButtonElement>('button.timer-button')
|
||
|
.forEach((button) => {
|
||
|
let counter = 30;
|
||
|
|
||
|
const container = document.createElement('span');
|
||
|
|
||
|
const updateCounter = () => {
|
||
|
container.innerText = ` (${counter})`;
|
||
|
};
|
||
|
|
||
|
updateCounter();
|
||
|
|
||
|
const countdown = setInterval(() => {
|
||
|
counter--;
|
||
|
|
||
|
if (counter === 0) {
|
||
|
button.disabled = false;
|
||
|
button.removeChild(container);
|
||
|
clearInterval(countdown);
|
||
|
} else {
|
||
|
updateCounter();
|
||
|
}
|
||
|
}, 1000);
|
||
|
|
||
|
button.appendChild(container);
|
||
|
});
|
||
|
}).catch((e: unknown) => {
|
||
|
throw e;
|
||
|
});
|