refactor: refactored and optimized render logic
This commit is contained in:
parent
50de1c0b57
commit
dd68c0c9b5
14
app.js
14
app.js
@ -7,17 +7,9 @@ App({
|
||||
TOTPS: localStorage.getItem('TOTPs') || []
|
||||
},
|
||||
onCreate(options) {
|
||||
// localStorage.setItem('TOTPs', [
|
||||
// new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'Iasd', 6, 30, 0, 'SHA-1'),
|
||||
// new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'Isgfsd', 6, 30, 0, 'SHA-1'),
|
||||
// new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'Idfklgj', 6, 30, 0, 'SHA-1'),
|
||||
// new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'Ibcopiu', 6, 30, 0, 'SHA-1'),
|
||||
// new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'Ioprfhujoidkfmv', 6, 30, 0, 'SHA-1'),
|
||||
// new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'If', 6, 30, 0, 'SHA-1'),
|
||||
// new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'I2', 6, 30, 0, 'SHA-1'),
|
||||
// new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'I3', 6, 30, 0, 'SHA-1'),
|
||||
// new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'I4', 6, 30, 0, 'SHA-1')
|
||||
// ])
|
||||
localStorage.setItem('TOTPs', [
|
||||
new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'Iasd')
|
||||
])
|
||||
},
|
||||
|
||||
onDestroy(options) {
|
||||
|
@ -54,7 +54,6 @@ export class TOTP {
|
||||
const createdTime = time - (((time / 1000 + this.timeOffset) %
|
||||
this.fetchTime) * 1000)
|
||||
|
||||
|
||||
return new OTP(otp, createdTime, expireTime)
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ import { getDeviceInfo } from '@zos/device'
|
||||
import { TOTP } from '../lib/totp-quickjs'
|
||||
import { setStatusBarVisible, createWidget, widget, align, prop, text_style, event, deleteWidget } from '@zos/ui'
|
||||
import { RenderAddButton, RenderExpireBar, RenderOTPValue, RenderTOTPContainer } from './render/totpRenderer'
|
||||
import { initLoop } from './render/index/renderer'
|
||||
|
||||
const app = getApp()
|
||||
const { width, height } = getDeviceInfo()
|
||||
@ -18,15 +19,10 @@ Page({
|
||||
},
|
||||
build() {
|
||||
const buffer = app._options.globalData.TOTPS
|
||||
if (buffer.length < 1) {
|
||||
if (buffer.length < 1)
|
||||
RenderAddButton('page/tip')
|
||||
} else {
|
||||
renderContainers(buffer)
|
||||
renderTOTPs(buffer)
|
||||
setInterval(() => {
|
||||
renderWidgets.forEach(x => deleteWidget(x))
|
||||
renderTOTPs(buffer)
|
||||
}, 500)
|
||||
else{
|
||||
initLoop(buffer)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
38
page/render/index/renderer.js
Normal file
38
page/render/index/renderer.js
Normal 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)
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user