You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

56 lines
1.4 KiB

class TimeDate {
constructor() {
this._timeDateButton = document.querySelector("#time-date");
this._timeLabel = document.querySelector("#time-date #time-label");
this._dateLabel = document.querySelector("#time-date #date-label");
this._passForm = document.querySelector("#pass-form");
this._init();
}
_updateTimeDate() {
let date = theme_utils.get_current_localized_date();
let time = theme_utils.get_current_localized_time();
this._dateLabel.innerText = date;
this._timeLabel.innerText = time;
}
_setTimer() {
this._updateTimeDate();
setInterval(() => {
this._updateTimeDate();
}, 1000);
}
_setButtons() {
this._timeDateButton.addEventListener("click", (ev) => {
this.toggleTimeDate();
});
this._passForm.addEventListener("keydown", (ev) => {
if (ev.keyCode == 27) {
this.toggleTimeDate();
}
});
}
async toggleTimeDate() {
this._timeDateButton.blur();
this._passForm.blur();
if (this._timeDateButton.classList.contains("hide")) {
this._passForm.classList.add("hide");
await wait(300);
this._timeDateButton.classList.remove("hide");
await wait(100);
this._timeDateButton.focus();
} else {
this._timeDateButton.classList.add("hide");
await wait(300);
this._passForm.classList.remove("hide");
}
}
_init() {
this._setTimer();
this._setButtons();
}
}