TOTPFit/page/index.js

47 lines
1.4 KiB
JavaScript

import { RenderAddButton } from "./render/totpRenderer";
import { initLoop } from "./render/index/renderer";
import { BasePage } from "@zeppos/zml/base-page";
import { LocalStorage } from '@zos/storage';
const app = getApp();
let waitForFetch = true;
let localStorage = new LocalStorage();
Page(
BasePage({
onInit() {
this.getTOTPData()
.then((x) => {
app._options.globalData.TOTPS = JSON.parse(x) ?? []
localStorage.setItem('TOTPs', JSON.stringify(app._options.globalData.TOTPS))
this.initPage();
})
.catch((x) => {
console.log(`Init failed: ${x}`)
app._options.globalData.TOTPS = JSON.parse(localStorage.getItem('TOTPs', null) ?? []);
this.initPage();
});
},
build() {
let fetch = setInterval(() => {
if (waitForFetch) return;
clearInterval(fetch);
const buffer = app._options.globalData.TOTPS;
if (buffer.length < 1) {
RenderAddButton("page/tip");
} else {
initLoop(buffer);
}
}, 100);
},
initPage() {
waitForFetch = false;
},
getTOTPData() {
return this.request({
method: "totps",
});
},
})
);