47 lines
1.4 KiB
JavaScript
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",
|
|
});
|
|
},
|
|
})
|
|
);
|