all repos — caroster @ 977a49f918209f5b36bb88670077f49cb1a5a14f

[Octree] Group carpool to your event https://caroster.io

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;