userConfigModel.ts 698 B

12345678910111213141516171819202122232425262728
  1. import { useState, useCallback } from 'react';
  2. import { createModel } from '../utils/model/createModel';
  3. interface UserConfigState {
  4. userConfig: API.UserInfo | null;
  5. }
  6. interface UserConfigModel extends UserConfigState {
  7. setUserConfig: (data: API.UserInfo | null) => void;
  8. }
  9. const useUserConfigModel = (): UserConfigModel => {
  10. const [state, setState] = useState<UserConfigState>({
  11. userConfig: null,
  12. });
  13. const setUserConfig = useCallback((data: API.UserInfo | null) => {
  14. setState({ userConfig: data });
  15. }, []);
  16. return {
  17. ...state,
  18. setUserConfig,
  19. };
  20. };
  21. export const userConfigModel = createModel(useUserConfigModel, 'userConfig');