98 lines
2.6 KiB
TypeScript
98 lines
2.6 KiB
TypeScript
export {};
|
|
// import { create } from "zustand";
|
|
// import { persist } from "zustand/middleware";
|
|
// import { FETCH_COMMIT_URL, StoreKey } from "../constant";
|
|
// import { api } from "../client/api";
|
|
// import { showToast } from "../components/ui-lib";
|
|
|
|
// export interface UpdateStore {
|
|
// lastUpdate: number;
|
|
// remoteVersion: string;
|
|
|
|
// used?: number;
|
|
// subscription?: number;
|
|
// lastUpdateUsage: number;
|
|
|
|
// version: string;
|
|
// getLatestVersion: (force?: boolean) => Promise<void>;
|
|
// updateUsage: (force?: boolean) => Promise<void>;
|
|
// }
|
|
|
|
// function queryMeta(key: string, defaultValue?: string): string {
|
|
// let ret: string;
|
|
// if (document) {
|
|
// const meta = document.head.querySelector(
|
|
// `meta[name='${key}']`,
|
|
// ) as HTMLMetaElement;
|
|
// ret = meta?.content ?? "";
|
|
// } else {
|
|
// ret = defaultValue ?? "";
|
|
// }
|
|
|
|
// return ret;
|
|
// }
|
|
|
|
// const ONE_MINUTE = 60 * 1000;
|
|
|
|
// export const useUpdateStore = create<UpdateStore>()(
|
|
// persist(
|
|
// (set, get) => ({
|
|
// lastUpdate: 0,
|
|
// remoteVersion: "",
|
|
|
|
// lastUpdateUsage: 0,
|
|
|
|
// version: "unknown",
|
|
|
|
// async getLatestVersion(force = false) {
|
|
// set(() => ({ version: queryMeta("version") ?? "unknown" }));
|
|
|
|
// const overTenMins = Date.now() - get().lastUpdate > 10 * ONE_MINUTE;
|
|
// if (!force && !overTenMins) return;
|
|
|
|
// set(() => ({
|
|
// lastUpdate: Date.now(),
|
|
// }));
|
|
|
|
// try {
|
|
// const data = await (await fetch(FETCH_COMMIT_URL)).json();
|
|
// const remoteCommitTime = data[0].commit.committer.date;
|
|
// const remoteId = new Date(remoteCommitTime).getTime().toString();
|
|
// set(() => ({
|
|
// remoteVersion: remoteId,
|
|
// }));
|
|
// console.log("[Got Upstream] ", remoteId);
|
|
// } catch (error) {
|
|
// console.error("[Fetch Upstream Commit Id]", error);
|
|
// }
|
|
// },
|
|
|
|
// async updateUsage(force = false) {
|
|
// const overOneMinute = Date.now() - get().lastUpdateUsage >= ONE_MINUTE;
|
|
// if (!overOneMinute && !force) return;
|
|
|
|
// set(() => ({
|
|
// lastUpdateUsage: Date.now(),
|
|
// }));
|
|
|
|
// try {
|
|
// const usage = await api.llm.usage();
|
|
|
|
// if (usage) {
|
|
// set(() => ({
|
|
// used: usage.used,
|
|
// subscription: usage.total,
|
|
// }));
|
|
// }
|
|
// } catch (e) {
|
|
// console.error((e as Error).message);
|
|
// }
|
|
// },
|
|
// }),
|
|
// {
|
|
// name: StoreKey.Update,
|
|
// version: 1,
|
|
// },
|
|
// ),
|
|
// );
|