useWalletStore.ts 1.5 KB

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