useWalletStore.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { Wallet } from "@/api/user";
  2. import { create } from "zustand";
  3. interface State {
  4. wallet: Wallet;
  5. score: Wallet["score"];
  6. }
  7. interface Action {
  8. setWallet: (state: Wallet) => void;
  9. setScore: (state: Wallet["score"]) => void;
  10. reset: () => void;
  11. }
  12. const initialState: State = {
  13. wallet: {
  14. avatar_url: "",
  15. currency: "",
  16. current_free_score_rollover: 0,
  17. current_lose_score_rollover: 0,
  18. current_point_rollover: 0,
  19. current_score_rollover: 0,
  20. deposit: 0,
  21. first_pay_time: 0,
  22. free_score: 0,
  23. lock_point: 0,
  24. lock_score: 0,
  25. lose_score: 0,
  26. nick_name: "",
  27. point: 0,
  28. score: 0,
  29. target_free_score_rollover: 0,
  30. target_lose_score_rollover: 0,
  31. target_point_rollover: 0,
  32. target_score_rollover: 0,
  33. total_free_score_rollover: 0,
  34. total_lose_score_rollover: 0,
  35. total_point_rollover: 0,
  36. total_receive_red_packet: 0,
  37. total_red_packet: 0,
  38. total_score_rollover: 0,
  39. user_name: "",
  40. notice: {
  41. lose_score: 0,
  42. },
  43. },
  44. score: undefined,
  45. };
  46. export const useWalletStore = create<State & Action>()((set) => {
  47. return {
  48. ...initialState,
  49. setWallet: (wallet) => {
  50. set((state) => ({ ...state, wallet }));
  51. },
  52. setScore: (score) => {
  53. set((state) => ({ ...state, score }));
  54. },
  55. reset: () => set(initialState),
  56. };
  57. });