Skip to content
Snippets Groups Projects
index.tsx 2.18 KiB
import { useTranslation } from 'react-i18next'

import { styled } from '@mui/system'
import Box from '@mui/material/Box'
import AccountBoxOutlinedIcon from '@mui/icons-material/AccountBoxOutlined'

import { HrefButton } from 'components/button'
import { Button, Typography } from '@mui/material'

const StyledBox = styled(Box)({
  borderStyle: 'solid',
  borderColor: 'black',
  borderWidth: '0.125rem',
  borderRadius: '0.6875rem',
})

interface LoginBoxProps {
  header: string
  info: string
  manual?: boolean
  large?: boolean
  onClickLogin?: () => any
}

const LoginBox = ({
  header,
  info,
  manual,
  large,
  onClickLogin,
}: LoginBoxProps) => {
  const { t } = useTranslation('login')
  return (
    <StyledBox
      sx={{
        width: large ? '48rem' : '24rem',
        height: '18rem',
        marginBottom: { xs: '2rem', md: '0rem' },
      }}
    >
      <Box
        sx={{
          display: 'flex',
          flexDirection: 'column',
          margin: '2rem',
          height: '35%',
        }}
      >
        <Box sx={{ display: 'flex', alignItems: 'center', paddingBottom: 1 }}>
          <AccountBoxOutlinedIcon
            fontSize="inherit"
            sx={{
              marginRight: { xs: '0rem', md: '0.5rem' },
            }}
          />
          <Typography variant="h3" component="h2">
            {header}
          </Typography>
        </Box>
        <Typography variant="body2">{info}</Typography>
      </Box>
      <Box
        sx={{
          display: 'flex',
          margin: '2rem',
          flexDirection: 'column',
          gap: '1rem',
        }}
      >
        <HrefButton to="/oidc/authenticate/" onClick={onClickLogin}>
          <Box sx={{ margin: '0 2rem 0 2rem', textTransform: 'none' }}>
            {t('login')}
          </Box>
        </HrefButton>

        {manual && (
          <Button
            sx={{ textTransform: 'none', border: '2px solid' }}
            href="/guestregister/"
            color="secondary"
          >
            <Box sx={{ margin: '0 2rem 0 2rem' }}>{t('manual')}</Box>
          </Button>
        )}
      </Box>
    </StyledBox>
  )
}
LoginBox.defaultProps = { manual: false, large: false, onClickLogin: {} }
export default LoginBox