File size: 812 Bytes
01d5a5d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { create } from 'zustand';
import { getCurrentInfo, type ILoadInfo } from '@/service/info';
import { EVENT } from '@/utils/event';

interface ILoadInfoState {
  loadInfo: ILoadInfo | null;
  fetchLoadInfo: () => void;
  setLoadInfo: (info: ILoadInfo | null) => void;
  clearLoadInfo: () => void;
}

export const useLoadInfoStore = create<ILoadInfoState>((set) => ({
  loadInfo: null,
  fetchLoadInfo: () => {
    getCurrentInfo().then((res) => {
      if (res.data.code === 0) {
        set({ loadInfo: res.data.data });
        localStorage.setItem('upload', JSON.stringify(res.data.data));
      } else if (res.data.code === 404) {
        dispatchEvent(new Event(EVENT.LOGOUT));
      }
    });
  },
  setLoadInfo: (info) => set({ loadInfo: info }),
  clearLoadInfo: () => set({ loadInfo: null })
}));