file-sync-store.ts 671 B

12345678910111213141516171819202122
  1. import { create } from "zustand"
  2. import type { FileChangeTask } from "@/commands/file-sync"
  3. interface FileSyncState {
  4. tasks: FileChangeTask[]
  5. running: boolean
  6. lastError: string | null
  7. setTasks: (tasks: FileChangeTask[]) => void
  8. setRunning: (running: boolean) => void
  9. setLastError: (error: string | null) => void
  10. clear: () => void
  11. }
  12. export const useFileSyncStore = create<FileSyncState>((set) => ({
  13. tasks: [],
  14. running: false,
  15. lastError: null,
  16. setTasks: (tasks) => set({ tasks }),
  17. setRunning: (running) => set({ running }),
  18. setLastError: (lastError) => set({ lastError }),
  19. clear: () => set({ tasks: [], running: false, lastError: null }),
  20. }))