refactor: refactored and optimized render logic

This commit is contained in:
Савелий Савенок
2024-11-19 20:30:24 +03:00
parent 50de1c0b57
commit dd68c0c9b5
4 changed files with 45 additions and 20 deletions

View File

@@ -0,0 +1,38 @@
import { deleteWidget } from "@zos/ui";
import { TOTP } from "../../../lib/totp-quickjs";
import { RenderAddButton, RenderExpireBar, RenderOTPValue, RenderTOTPContainer } from '../totpRenderer'
/**
*
* @param {Array<TOTP>} buffer
*/
export function initLoop(buffer) {
renderContainers(buffer)
renderTOTPs(buffer)
}
function renderContainers(buffer) {
for (let i = 0; i < buffer.length; i++) {
RenderTOTPContainer(i, buffer[i].issuer, buffer[i].client)
}
}
const renderData = []
function renderTOTPs(buffer) {
for (let i = 0; i < buffer.length; i++) {
let otpData = TOTP.copy(buffer[i]).getOTP(Date.now())
console.log(otpData.otp)
renderData[i] = {}
renderData[i].OTP = RenderOTPValue(i, otpData.otp),
renderData[i].expireBar = RenderExpireBar(i, otpData.createdTime, buffer[i].fetchTime)
setInterval(() => {
deleteWidget(renderData[i].expireBar)
renderData[i].expireBar = RenderExpireBar(i, otpData.createdTime, buffer[i].fetchTime)
if(otpData.expireTime < Date.now()){
otpData = TOTP.copy(buffer[i]).getOTP(Date.now())
deleteWidget(renderData[i].OTP)
renderData[i].OTP = RenderOTPValue(i, otpData.otp)
}
}, 500)
}
}