import { tauriStore } from "@/utils/old" import { create } from "zustand" import { createJSONStorage, persist } from "zustand/middleware" interface ToolState { launchOptions: string[] launchIndex: number powerPlan: number } interface ToolAction { setLaunchOption: (option: string, index: number) => void setLaunchOptions: (options: string[]) => void setLaunchIndex: (index: number) => void setPowerPlan: (index: number) => void } const STORE_NAME = "tool" const { /* store, */ storage } = await tauriStore(STORE_NAME) const useToolStore = create()( persist( (set /* , get */) => ({ launchOptions: [ "-high -refresh 120 -novid -nojoy -tickrate 128 +cl_cmdrate 128 +cl_updaterate 128 +exec auto.cfg +test", "", "", ], launchIndex: 0, powerPlan: 0, setLaunchOption: (option: string, index: number) => set((state) => ({ launchOptions: [ ...state.launchOptions.slice(0, index), option, ...state.launchOptions.slice(index + 1), ], })), setLaunchOptions: (options: string[]) => set(() => ({ launchOptions: options })), setLaunchIndex: (index: number) => set(() => ({ launchIndex: index })), setPowerPlan: (index: number) => set(() => ({ powerPlan: index })), }), { name: STORE_NAME, // name of item in the storage (must be unique) storage: createJSONStorage(() => storage), // (optional) by default the 'localStorage' is used }, ), ) export default useToolStore