12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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<CurrentWheel>;
- totalCount: number;
- receiveTarget: Partial<NotReceive>;
- }
- interface Action {
- setWheel: () => Promise<WheelsType | undefined>;
- }
- const initialState: State = {
- status: 3,
- currentWheel: {},
- totalCount: 100,
- receiveTarget: {},
- };
- /**
- * @description 系统配置
- */
- export const useWheelStore = create<State & Action>()((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;
|