Files
Firefly_Launcher/frontend/src/stores/diffStore.ts
2025-08-25 18:12:13 +07:00

46 lines
1.8 KiB
TypeScript

import { create } from 'zustand'
interface DiffState {
folderCheckResult: 'success' | 'error' | null,
isLoading: {game: boolean, diff: boolean},
diffDir: string,
diffCheckResult: 'success' | 'error' | null,
isDiffLoading: boolean,
progressUpdate: number,
maxProgressUpdate: number,
messageUpdate: string,
stageType: string,
setMessageUpdate: (value: string) => void,
setIsLoading: (value: {game: boolean, diff: boolean}) => void,
setFolderCheckResult: (value: 'success' | 'error' | null) => void,
setDiffDir: (value: string) => void,
setDiffCheckResult: (value: 'success' | 'error' | null) => void,
setIsDiffLoading: (value: boolean) => void,
setProgressUpdate: (value: number) => void,
setMaxProgressUpdate: (value: number) => void,
setStageType: (value: string) => void,
}
const useDiffStore = create<DiffState>((set, get) => ({
isLoading: {game: false, diff: false},
folderCheckResult: null,
diffDir: "",
diffCheckResult: null,
isDiffLoading: false,
progressUpdate: 0,
maxProgressUpdate: 0,
messageUpdate: "",
stageType: "",
setIsLoading: (value: {game: boolean, diff: boolean}) => set({ isLoading: value }),
setFolderCheckResult: (value: 'success' | 'error' | null) => set({ folderCheckResult: value }),
setDiffDir: (value: string) => set({ diffDir: value }),
setDiffCheckResult: (value: 'success' | 'error' | null) => set({ diffCheckResult: value }),
setIsDiffLoading: (value: boolean) => set({ isDiffLoading: value }),
setProgressUpdate: (value: number) => set({ progressUpdate: value }),
setMaxProgressUpdate: (value: number) => set({ maxProgressUpdate: value }),
setMessageUpdate: (value: string) => set({ messageUpdate: value }),
setStageType: (value: string) => set({ stageType: value }),
}));
export default useDiffStore;