index.tsx 1.7 KB

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