TelegramPWA/src/App.tsx
Alexander Zinchuk 3afcde3217 Initial commit
2021-04-09 14:11:51 +03:00

53 lines
1.4 KiB
TypeScript

import { FC, useEffect } from './lib/teact/teact';
import React, { withGlobal } from './lib/teact/teactn';
import { GlobalState } from './global/types';
import { pick } from './util/iteratees';
import { updateSizes } from './util/windowSize';
import Auth from './components/auth/Auth';
import UiLoader from './components/common/UiLoader';
import Main from './components/main/Main.async';
// import Test from './components/test/TestNoRedundancy';
type StateProps = Pick<GlobalState, 'authState' | 'authIsSessionRemembered'>;
const App: FC<StateProps> = ({ authState, authIsSessionRemembered }) => {
useEffect(() => {
updateSizes();
}, []);
// return <Test />;
if (authState) {
switch (authState) {
case 'authorizationStateWaitPhoneNumber':
case 'authorizationStateWaitCode':
case 'authorizationStateWaitPassword':
case 'authorizationStateWaitRegistration':
case 'authorizationStateWaitQrCode':
return <Auth />;
case 'authorizationStateClosed':
case 'authorizationStateClosing':
case 'authorizationStateLoggingOut':
case 'authorizationStateReady':
return renderMain();
}
}
return authIsSessionRemembered ? renderMain() : <Auth />;
};
function renderMain() {
return (
<UiLoader page="main" key="main">
<Main />
</UiLoader>
);
}
export default withGlobal(
(global): StateProps => pick(global, ['authState', 'authIsSessionRemembered']),
)(App);