import React, { FC, useEffect, memo } from '../../lib/teact/teact'; import { withGlobal } from '../../lib/teact/teactn'; import { GlobalActions, GlobalState } from '../../global/types'; import '../../modules/actions/initial'; import { pick } from '../../util/iteratees'; import { PLATFORM_ENV } from '../../util/environment'; import UiLoader from '../common/UiLoader'; import AuthPhoneNumber from './AuthPhoneNumber'; import AuthCode from './AuthCode.async'; import AuthPassword from './AuthPassword.async'; import AuthRegister from './AuthRegister.async'; import AuthQrCode from './AuthQrCode'; import './Auth.scss'; type StateProps = Pick; type DispatchProps = Pick; const Auth: FC = ({ authState, reset, initApi }) => { useEffect(() => { reset(); initApi(); }, [reset, initApi]); switch (authState) { case 'authorizationStateWaitCode': return ; case 'authorizationStateWaitPassword': return ; case 'authorizationStateWaitRegistration': return ; case 'authorizationStateWaitPhoneNumber': return ; case 'authorizationStateWaitQrCode': return ; default: return PLATFORM_ENV === 'iOS' || PLATFORM_ENV === 'Android' ? : ; } }; export default memo(withGlobal( (global): StateProps => pick(global, ['authState']), (global, actions): DispatchProps => pick(actions, ['reset', 'initApi']), )(Auth));