import React from "react"; import { NavigationProp, useNavigation } from "@react-navigation/native"; import { FunctionComponent, useState } from "react"; import { useTranslation } from "react-i18next"; import { useApp } from "../../../hooks/app-context"; import { useSecureContext } from "../../../hooks/secure-http-context"; import { AuthRoutesStackParams } from "../../../routes/AuthRoutes"; import {TextInputComponent} from "../../shared/InputComponent"; import {SubmitCancelButtonsComponent} from "../../shared/SubmitCancelButtonsComponent"; import {BaseStyleComponent} from "../BaseStyleComponent"; const LoginComponent:FunctionComponent = () => { const navigation = useNavigation>(); const { t } = useTranslation('nblocks'); const {authService} = useSecureContext(); const {name} = useApp(); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const authenticate = async(): Promise => { try { const response = await authService.authenticate(username, password); setUsername(""); setPassword(""); switch (response.mfaState) { case 'DISABLED': navigation.navigate('ChooseUser'); break; case 'REQUIRED': navigation.navigate('RequireMfa'); break; case 'SETUP': navigation.navigate('SetupMfa'); break; } } catch (error) { console.log("catched", error); } } return ( setUsername(val)} /> setPassword(val)} /> navigation.navigate("ResetPassword")} submitText={t('LOGIN')} onSubmit={() => authenticate()} submitDisabled={!username || !password} /> ); } export {LoginComponent};