user.js 800 B

123456789101112131415161718192021222324252627282930313233
  1. import {setStorageSync, removeStorageSync, getStorageSync} from '@tarojs/taro';
  2. import {USER_TOKEN_STORAGE} from '@utils';
  3. import {createStore} from 'zustand';
  4. export const userStore = createStore(function (set) {
  5. const storage = getStorageSync(USER_TOKEN_STORAGE);
  6. let userName = '',
  7. power = '0x000000';
  8. if (storage) {
  9. ({userName, power} = storage);
  10. }
  11. return {
  12. userName,
  13. power,
  14. init(data) {
  15. set(data);
  16. setStorageSync(USER_TOKEN_STORAGE, data);
  17. },
  18. setPower(power) {
  19. set(function (prev) {
  20. setStorageSync(USER_TOKEN_STORAGE, {userName: prev.userName, power});
  21. return {power};
  22. });
  23. },
  24. logout() {
  25. set({token: '', userName: '', power: '0x000000'});
  26. removeStorageSync(USER_TOKEN_STORAGE);
  27. },
  28. };
  29. });