index.tsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { FC, useState } from 'react';
  2. import { View } from 'react-native';
  3. import { NavigationProp } from '@react-navigation/native';
  4. import { Header, Input, Button, BigText, PageWrapper } from '../../components';
  5. import { ButtonVariants } from '../../types/components';
  6. import { storageSet } from '../../storage';
  7. import { NAVIGATION_PAGES } from '../../types';
  8. import { usePostLogin } from '../../modules/auth/api/queries/use-post-login';
  9. type Props = {
  10. navigation: NavigationProp<any>;
  11. };
  12. const LoginScreen: FC<Props> = ({ navigation }) => {
  13. const [login, setLogin] = useState('');
  14. const [pass, setPass] = useState('');
  15. const { data, refetch } = usePostLogin({ login, pass }, false);
  16. if (data) {
  17. if (data.token) {
  18. storageSet('token', data.token);
  19. }
  20. }
  21. return (
  22. <PageWrapper>
  23. <Header label={'Login'} />
  24. <View style={{ gap: 15 }}>
  25. <BigText>Welcome back</BigText>
  26. <Input
  27. header={'Email address'}
  28. placeholder={'Email or login'}
  29. inputMode={'email'}
  30. onChange={(e) => setLogin(e)}
  31. />
  32. <Input
  33. header={'Password'}
  34. isPrivate={true}
  35. placeholder={'Login'}
  36. onChange={(e) => setPass(e)}
  37. />
  38. </View>
  39. <View style={{ gap: 30, marginTop: '5%' }}>
  40. <Button
  41. variant={ButtonVariants.TEXT}
  42. onPress={() => navigation.navigate(NAVIGATION_PAGES.RESET_PASSWORD)}
  43. >
  44. Forgot password
  45. </Button>
  46. <Button onPress={() => refetch()}>Login</Button>
  47. </View>
  48. </PageWrapper>
  49. );
  50. };
  51. export default LoginScreen;