all repos — caroster @ 116dd85d56ab607173ef9b2215698b7d24adb3fb

[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 LanguagesIcon from '../../containers/Languages/Icon';
 9import {getSession} from 'next-auth/react';
10import pageUtils from '../../lib/pageUtils';
11
12interface PageProps {
13  error?: string;
14}
15
16const Login = (props: PageProps) => {
17  const {t} = useTranslation();
18
19  return (
20    <Layout menuTitle={t('signin.title')} displayMenu={false}>
21      <Card>
22        <CardMedia component={Logo} />
23        <SignInForm error={props?.error} />
24      </Card>
25      <LanguagesIcon />
26    </Layout>
27  );
28};
29
30export const getServerSideProps = async (context: any) => {
31  const session = await getSession(context);
32
33  if (session)
34    return {
35      redirect: {
36        destination: '/',
37        permanent: false,
38      },
39    };
40  else
41    return pageUtils.getServerSideProps(async ctx => {
42      const error = ctx.query?.error || null;
43      return {props: {error}};
44    })(context);
45};
46
47export default Login;