TOTPFit/page/index.js

43 lines
1.2 KiB
JavaScript

import { RenderAddButton } from "./render/totpRenderer";
import { initLoop } from "./render/index/renderer";
import { BasePage } from "@zeppos/zml/base-page";
const app = getApp();
let waitForFetch = true;
Page(
BasePage({
onInit() {
this.getTOTPData()
.then((x) => {
app._options.globalData.TOTPS = JSON.parse(x) ?? [];
this.initPage();
})
.catch((x) => {
app._options.globalData.TOTPS = [];
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",
});
},
})
);