You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
185 lines
7.0 KiB
185 lines
7.0 KiB
import { useSkin } from '@hooks/useSkin'; |
|
import { Link, Redirect } from 'react-router-dom'; |
|
import { Facebook, Twitter, Mail, GitHub } from 'react-feather'; |
|
import InputPasswordToggle from '@core@components/input-password-toggle'; |
|
import { |
|
Row, |
|
Col, |
|
CardTitle, |
|
CardText, |
|
Form, |
|
FormGroup, |
|
Label, |
|
Input, |
|
CustomInput, |
|
Button |
|
} from 'reactstrap'; |
|
import '@styles/base/pages/page-auth.scss'; |
|
|
|
const Login = () => { |
|
const [skin, setSkin] = useSkin(); |
|
|
|
const illustration = skin === 'dark' ? 'login-v2-dark.svg' : 'login-v2.svg', |
|
source = require(`@src/assets/images/pages/${illustration}`).default; |
|
|
|
return ( |
|
<div className='auth-wrapper auth-v2'> |
|
<Row className='auth-inner m-0'> |
|
<Link className='brand-logo' to='/'> |
|
<svg viewBox='0 0 139 95' version='1.1' height='28'> |
|
<defs> |
|
<linearGradient |
|
x1='100%' |
|
y1='10.5120544%' |
|
x2='50%' |
|
y2='89.4879456%' |
|
id='linearGradient-1' |
|
> |
|
<stop stopColor='#000000' offset='0%'></stop> |
|
<stop stopColor='#FFFFFF' offset='100%'></stop> |
|
</linearGradient> |
|
<linearGradient |
|
x1='64.0437835%' |
|
y1='46.3276743%' |
|
x2='37.373316%' |
|
y2='100%' |
|
id='linearGradient-2' |
|
> |
|
<stop stopColor='#EEEEEE' stopOpacity='0' offset='0%'></stop> |
|
<stop stopColor='#FFFFFF' offset='100%'></stop> |
|
</linearGradient> |
|
</defs> |
|
<g |
|
id='Page-1' |
|
stroke='none' |
|
strokeWidth='1' |
|
fill='none' |
|
fillRule='evenodd' |
|
> |
|
<g id='Artboard' transform='translate(-400.000000, -178.000000)'> |
|
<g id='Group' transform='translate(400.000000, 178.000000)'> |
|
<path |
|
d='M-5.68434189e-14,2.84217094e-14 L39.1816085,2.84217094e-14 L69.3453773,32.2519224 L101.428699,2.84217094e-14 L138.784583,2.84217094e-14 L138.784199,29.8015838 C137.958931,37.3510206 135.784352,42.5567762 132.260463,45.4188507 C128.736573,48.2809251 112.33867,64.5239941 83.0667527,94.1480575 L56.2750821,94.1480575 L6.71554594,44.4188507 C2.46876683,39.9813776 0.345377275,35.1089553 0.345377275,29.8015838 C0.345377275,24.4942122 0.230251516,14.560351 -5.68434189e-14,2.84217094e-14 Z' |
|
id='Path' |
|
className='text-primary' |
|
style={{ fill: 'currentColor' }} |
|
></path> |
|
<path |
|
d='M69.3453773,32.2519224 L101.428699,1.42108547e-14 L138.784583,1.42108547e-14 L138.784199,29.8015838 C137.958931,37.3510206 135.784352,42.5567762 132.260463,45.4188507 C128.736573,48.2809251 112.33867,64.5239941 83.0667527,94.1480575 L56.2750821,94.1480575 L32.8435758,70.5039241 L69.3453773,32.2519224 Z' |
|
id='Path' |
|
fill='url(#linearGradient-1)' |
|
opacity='0.2' |
|
></path> |
|
<polygon |
|
id='Path-2' |
|
fill='#000000' |
|
opacity='0.049999997' |
|
points='69.3922914 32.4202615 32.8435758 70.5039241 54.0490008 16.1851325' |
|
></polygon> |
|
<polygon |
|
id='Path-2' |
|
fill='#000000' |
|
opacity='0.099999994' |
|
points='69.3922914 32.4202615 32.8435758 70.5039241 58.3683556 20.7402338' |
|
></polygon> |
|
<polygon |
|
id='Path-3' |
|
fill='url(#linearGradient-2)' |
|
opacity='0.099999994' |
|
points='101.428699 0 83.0667527 94.1480575 130.378721 47.0740288' |
|
></polygon> |
|
</g> |
|
</g> |
|
</g> |
|
</svg> |
|
<h2 className='brand-text text-primary ml-1'>Vuexy</h2> |
|
</Link> |
|
<Col className='d-none d-lg-flex align-items-center p-5' lg='8' sm='12'> |
|
<div className='w-100 d-lg-flex align-items-center justify-content-center px-5'> |
|
<img className='img-fluid' src={source} alt='Login V2' /> |
|
</div> |
|
</Col> |
|
<Col |
|
className='d-flex align-items-center auth-bg px-2 p-lg-5' |
|
lg='4' |
|
sm='12' |
|
> |
|
<Col className='px-xl-2 mx-auto' sm='8' md='6' lg='12'> |
|
<CardTitle tag='h2' className='font-weight-bold mb-1'> |
|
Welcome to Vuexy! 👋 |
|
</CardTitle> |
|
<CardText className='mb-2'> |
|
Please sign-in to your account and start the adventure |
|
</CardText> |
|
<Form |
|
className='auth-login-form mt-2' |
|
onSubmit={e => e.preventDefault()} |
|
> |
|
<FormGroup> |
|
<Label className='form-label' for='login-email'> |
|
Email |
|
</Label> |
|
<Input |
|
type='email' |
|
id='login-email' |
|
placeholder='john@example.com' |
|
autoFocus |
|
/> |
|
</FormGroup> |
|
<FormGroup> |
|
<div className='d-flex justify-content-between'> |
|
<Label className='form-label' for='login-password'> |
|
Password |
|
</Label> |
|
<Link to='/'> |
|
<small>Forgot Password?</small> |
|
</Link> |
|
</div> |
|
<InputPasswordToggle |
|
className='input-group-merge' |
|
id='login-password' |
|
/> |
|
</FormGroup> |
|
<FormGroup> |
|
<CustomInput |
|
type='checkbox' |
|
className='custom-control-Primary' |
|
id='remember-me' |
|
label='Remember Me' |
|
/> |
|
</FormGroup> |
|
<Button.Ripple tag={Link} to='/' color='primary' block> |
|
Sign in |
|
</Button.Ripple> |
|
</Form> |
|
<p className='text-center mt-2'> |
|
<span className='mr-25'>New on our platform?</span> |
|
<Link to='/'> |
|
<span>Create an account</span> |
|
</Link> |
|
</p> |
|
<div className='divider my-2'> |
|
<div className='divider-text'>or</div> |
|
</div> |
|
<div className='auth-footer-btn d-flex justify-content-center'> |
|
<Button.Ripple color='facebook'> |
|
<Facebook size={14} /> |
|
</Button.Ripple> |
|
<Button.Ripple color='twitter'> |
|
<Twitter size={14} /> |
|
</Button.Ripple> |
|
<Button.Ripple color='google'> |
|
<Mail size={14} /> |
|
</Button.Ripple> |
|
<Button.Ripple className='mr-0' color='github'> |
|
<GitHub size={14} /> |
|
</Button.Ripple> |
|
</div> |
|
</Col> |
|
</Col> |
|
</Row> |
|
</div> |
|
); |
|
}; |
|
|
|
export default Login;
|
|
|