useUserInfoStore.ts 949 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { create } from "zustand";
  2. import { createJSONStorage, devtools, persist } from "zustand/middleware";
  3. interface State {
  4. userInfo: any;
  5. }
  6. interface Action {
  7. setUserInfo: (lang: State["userInfo"]) => void;
  8. reset: () => void;
  9. }
  10. const initialState: State = {
  11. userInfo: "",
  12. };
  13. export const useUserInfoStore = create<State & Action>()(
  14. devtools(
  15. persist(
  16. (set) => {
  17. return {
  18. ...initialState,
  19. setUserInfo: (userInfo: State["userInfo"]) =>
  20. set({
  21. userInfo,
  22. }),
  23. reset: () => {
  24. set(initialState);
  25. },
  26. };
  27. },
  28. {
  29. name: "globalStore",
  30. storage: createJSONStorage(() => localStorage),
  31. }
  32. ),
  33. { name: "globalStore" }
  34. )
  35. );