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') || []
|
TOTPS: localStorage.getItem('TOTPs') || []
|
||||||
},
|
},
|
||||||
onCreate(options) {
|
onCreate(options) {
|
||||||
// localStorage.setItem('TOTPs', [
|
localStorage.setItem('TOTPs', [
|
||||||
// new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'Iasd', 6, 30, 0, 'SHA-1'),
|
new TOTP('JBSWY3DPEHPK3PXPQ', 'totp.danhersam.com', 'Iasd')
|
||||||
// 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')
|
|
||||||
// ])
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onDestroy(options) {
|
onDestroy(options) {
|
||||||
|
@ -54,7 +54,6 @@ export class TOTP {
|
|||||||
const createdTime = time - (((time / 1000 + this.timeOffset) %
|
const createdTime = time - (((time / 1000 + this.timeOffset) %
|
||||||
this.fetchTime) * 1000)
|
this.fetchTime) * 1000)
|
||||||
|
|
||||||
|
|
||||||
return new OTP(otp, createdTime, expireTime)
|
return new OTP(otp, createdTime, expireTime)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ import { getDeviceInfo } from '@zos/device'
|
|||||||
import { TOTP } from '../lib/totp-quickjs'
|
import { TOTP } from '../lib/totp-quickjs'
|
||||||
import { setStatusBarVisible, createWidget, widget, align, prop, text_style, event, deleteWidget } from '@zos/ui'
|
import { setStatusBarVisible, createWidget, widget, align, prop, text_style, event, deleteWidget } from '@zos/ui'
|
||||||
import { RenderAddButton, RenderExpireBar, RenderOTPValue, RenderTOTPContainer } from './render/totpRenderer'
|
import { RenderAddButton, RenderExpireBar, RenderOTPValue, RenderTOTPContainer } from './render/totpRenderer'
|
||||||
|
import { initLoop } from './render/index/renderer'
|
||||||
|
|
||||||
const app = getApp()
|
const app = getApp()
|
||||||
const { width, height } = getDeviceInfo()
|
const { width, height } = getDeviceInfo()
|
||||||
@ -18,15 +19,10 @@ Page({
|
|||||||
},
|
},
|
||||||
build() {
|
build() {
|
||||||
const buffer = app._options.globalData.TOTPS
|
const buffer = app._options.globalData.TOTPS
|
||||||
if (buffer.length < 1) {
|
if (buffer.length < 1)
|
||||||
RenderAddButton('page/tip')
|
RenderAddButton('page/tip')
|
||||||
} else {
|
else{
|
||||||
renderContainers(buffer)
|
initLoop(buffer)
|
||||||
renderTOTPs(buffer)
|
|
||||||
setInterval(() => {
|
|
||||||
renderWidgets.forEach(x => deleteWidget(x))
|
|
||||||
renderTOTPs(buffer)
|
|
||||||
}, 500)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
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