useWalletStore.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. no_bonus_config: 0,
  41. notice: {
  42. lose_score: 0,
  43. },
  44. free_transfer_max: 0,
  45. lose_transfer_max: 0,
  46. },
  47. score: undefined,
  48. };
  49. export const useWalletStore = create<State & Action>()((set) => {
  50. return {
  51. ...initialState,
  52. setWallet: (wallet) => {
  53. set((state) => ({ ...state, wallet }));
  54. },
  55. setScore: (score) => {
  56. set((state) => ({ ...state, score }));
  57. },
  58. reset: () => set(initialState),
  59. };
  60. });