Files
workavia-drive/tdrive/frontend/src/app/views/login/internal/internal-login.tsx
T
2024-10-25 13:29:08 +02:00

89 lines
3.0 KiB
TypeScript
Executable File

import React, { useEffect } from 'react';
import { Typography } from 'antd';
import Globals from '@features/global/services/globals-tdrive-app-service';
import Languages from '@features/global/services/languages-service';
import InitService from '@features/global/services/init-service';
import LoginService from '@features/auth/login-service';
import Icon from '@components/icon/icon.jsx';
import LoginView from './login-view/login-view';
import Signin from './signin/signin.jsx';
import Error from './error';
import './login.scss';
export default () => {
LoginService.useListener();
Languages.useListener();
const [server_infos_loaded, server_infos] = InitService.useWatcher(() => [
InitService.server_infos_loaded,
InitService.server_infos,
]);
useEffect(() => {
LoginService.init();
document.body.classList.remove('fade_out');
document.body.classList.add('fade_in');
return () => {
document.body.classList.remove('fade_in');
};
}, []);
if (!server_infos_loaded) {
return <div />;
}
return (
<div className="loginPage">
{server_infos_loaded && !server_infos?.configuration?.branding?.name && (
<div className="tdrive_logo" />
)}
{LoginService.state === 'error' && <Error />}
{LoginService.state === 'logged_out' && <LoginView />}
{LoginService.state === 'signin' && <Signin />}
<div className={'app_version_footer '}>
<div className="version_name fade_in">Tdrive {Globals.version.version_name}</div>
<div style={{ height: 20 }}>
{server_infos_loaded && server_infos?.configuration?.branding?.name && (
<div className="smalltext fade_in">
{server_infos?.configuration?.branding?.name &&
Languages.t('scenes.login.footer.branding', [
server_infos?.configuration?.branding?.name,
server_infos?.configuration?.branding.link || 'tdrive.app',
])}
<Typography.Link onClick={() => window.open('https://drive.twake.app', 'blank')}>
{Languages.t('scenes.login.footer.go_to_tdrive')}
</Typography.Link>
{' - ' + Globals.version.version}
</div>
)}
{server_infos_loaded && !server_infos?.configuration?.branding?.name && (
<Typography.Link
className="fade_in"
onClick={() => window.open('https://drive.twake.app', 'blank')}
>
{Languages.t('scenes.login.footer.go_to_tdrive')}
</Typography.Link>
)}
</div>
</div>
<div className={'help_footer'}>
{server_infos_loaded && server_infos?.configuration?.help_url && (
<Typography.Link
onClick={() =>
window.open(InitService.server_infos?.configuration?.help_url || '', 'blank')
}
className="blue_link fade_in"
>
<Icon type="question-circle" /> {Languages.t('general.help')}
</Typography.Link>
)}
</div>
</div>
);
};