frontend/pages/auth/login.tsx (view raw)
1import CardMedia from '@material-ui/core/CardMedia';
2import Divider from '@material-ui/core/Divider';
3import Card from '@material-ui/core/Card';
4import {useTranslation} from 'react-i18next';
5import Layout from '../../layouts/Centered';
6import Logo from '../../components/Logo';
7import SignInForm from '../../containers/SignInForm';
8import LoginGoogle from '../../containers/LoginGoogle';
9import LanguagesIcon from '../../containers/Languages/Icon';
10import {getSession} from 'next-auth/react';
11import pageUtils from '../../lib/pageUtils';
12
13interface PageProps {
14 error?: string;
15}
16
17const Login = (props: PageProps) => {
18 const {t} = useTranslation();
19
20 return (
21 <Layout menuTitle={t('signin.title')} displayMenu={false}>
22 <Card>
23 <CardMedia component={Logo} />
24 <SignInForm error={props?.error} />
25 d'une autre branche
26 <Divider />
27 <LoginGoogle />
28 </Card>
29 <LanguagesIcon />
30 </Layout>
31 );
32};
33
34export const getServerSideProps = async (context: any) => {
35 const session = await getSession(context);
36
37 if (session)
38 return {
39 redirect: {
40 destination: '/',
41 permanent: false,
42 },
43 };
44 else
45 return pageUtils.getServerSideProps(async ctx => {
46 const error = ctx.query?.error || null;
47 return {props: {error}};
48 })(context);
49};
50
51export default Login;