import { Store } from "@tauri-apps/plugin-store" // import { create } from "zustand" // import { createJSONStorage, persist } from "zustand/middleware" // interface AppState { // version: string // hasUpdate: boolean // inited: boolean // notice: string // useMirror: boolean // } // interface AppAction { // setVersion: (version: string) => void // setHasUpdate: (hasUpdate: boolean) => void // setInited: (hasInit: boolean) => void // setNotice: (notice: string) => void // setUseMirror: (useMirror: boolean) => void // } const STORE_NAME = "app" // 节流设置 export const THROTTLE_TIME = 300 export const THROTTLE_TIME_STORE = 2000 export const THROTTLE_LEADING = true export const THROTTLE_TRAILING = true // const { /* store, */ storage } = await tauriStore(STORE_NAME) // const useAppStore = create()( // persist( // (set /* , get */) => ({ // version: "0.0.1", // hasUpdate: false, // inited: false, // notice: "Man! What can I say?", // useMirror: true, // setVersion: (version: string) => set(() => ({ version: version })), // setHasUpdate: (hasUpdate: boolean) => // set(() => ({ hasUpdate: hasUpdate })), // setInited: (inited: boolean) => set(() => ({ inited: inited })), // setNotice: (notice: string) => set(() => ({ notice: notice })), // setUseMirror: (useMirror: boolean) => // set(() => ({ useMirror: useMirror })), // }), // { // name: STORE_NAME, // name of item in the storage (must be unique) // storage: createJSONStorage(() => storage), // (optional) by default the 'localStorage' is used // }, // ), // ) const useAppStore = async (): Promise => { let store = await Store.get(`${STORE_NAME || "store"}.settings.json`); if (!store) { store = await Store.load(`${STORE_NAME || "store"}.settings.json`, { autoSave: THROTTLE_TIME_STORE, }); } // 生成随机字符串,每1s打印 const randomString = Math.random().toString(36).substring(2, 15) setInterval(() => { console.log("app store", randomString) }, 1000) return { version: async () => (await store.get("version")) || "0.0.1", hasUpdate: async () => (await store.get("hasUpdate")) || false, inited: async () => (await store.get("inited")) || false, notice: async () => (await store.get("notice")) || "", useMirror: async () => (await store.get("useMirror")) || true, setVersion: async (version: string) => await store.set("version", version), setHasUpdate: async (hasUpdate: boolean) => await store.set("hasUpdate", hasUpdate), setInited: async (inited: boolean) => await store.set("inited", inited), setNotice: async (notice: string) => await store.set("notice", notice), setUseMirror: async (useMirror: boolean) => await store.set("useMirror", useMirror), } } export default useAppStore