import { Activate, Activity, getWheelApi, NotReceive, WheelsType } from "@/api/cashWheel"; import { getToken } from "@/utils/Cookies"; import { create } from "zustand"; /** * 轮盘store */ interface CurrentWheel extends Activate, Activity {} interface State { status: 1 | 2 | 3; // status: 1可旋转 2可领取 3 不展示 currentWheel: Partial; totalCount: number; receiveTarget: Partial; } interface Action { setWheel: () => Promise; } const initialState: State = { status: 3, currentWheel: {}, totalCount: 100, receiveTarget: {}, }; /** * @description 系统配置 */ export const useWheelStore = create()((set, get) => { return { ...initialState, setWheel: () => { if (!getToken()) return Promise.resolve(undefined); return getWheelApi().then((res) => { const { data } = res; if (Array.isArray(data)) { set((state) => ({ ...state, status: 3 })); return undefined; } let source = { ...(data.activities?.[0] || {}), ...data.activate }; if (data.not_receive) { set((state) => ({ ...state, status: 2, currentWheel: source, receiveTarget: data.not_receive[0], })); return data; } if (source.can === 1 && data.not_receive === null) { set((state) => ({ ...state, status: 1, currentWheel: source })); return data; } set((state) => ({ ...state, status: 3, currentWheel: source })); return data; }); }, reset: () => set(initialState), }; }); export default useWheelStore;