Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

login-hooks.ts 874B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { useCallback } from 'react';
  2. import { useDispatch } from 'umi';
  3. export interface ILoginRequestBody {
  4. email: string;
  5. password: string;
  6. }
  7. export interface IRegisterRequestBody extends ILoginRequestBody {
  8. nickname: string;
  9. }
  10. export const useLogin = () => {
  11. const dispatch = useDispatch();
  12. const login = useCallback(
  13. (requestBody: ILoginRequestBody) => {
  14. // TODO: Type needs to be improved
  15. return dispatch<any>({
  16. type: 'loginModel/login',
  17. payload: requestBody,
  18. });
  19. },
  20. [dispatch],
  21. );
  22. return login;
  23. };
  24. export const useRegister = () => {
  25. const dispatch = useDispatch();
  26. const register = useCallback(
  27. (requestBody: IRegisterRequestBody) => {
  28. return dispatch<any>({
  29. type: 'loginModel/register',
  30. payload: requestBody,
  31. });
  32. },
  33. [dispatch],
  34. );
  35. return register;
  36. };