useWalletStore.ts 680 B

1234567891011121314151617181920212223242526272829
  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. score: 0,
  15. };
  16. export const useWalletStore = create<State & Action>()((set) => {
  17. return {
  18. ...initialState,
  19. setWallet: (wallet) => {
  20. set((state) => ({ ...state, wallet }));
  21. },
  22. setScore: (score) => {
  23. set((state) => ({ ...state, score }));
  24. },
  25. reset: () => set(initialState),
  26. };
  27. });