import { tauriStore } from '@/utils/persist' 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 } = 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