databag/net/web/src/access/Access.jsx

58 lines
1.4 KiB
React
Raw Normal View History

2022-08-03 20:20:10 +00:00
import React, { useContext, useEffect } from 'react';
import { useNavigate } from "react-router-dom";
import { AppContext } from 'context/AppContext';
import { ViewportContext } from 'context/ViewportContext';
2022-08-04 06:28:09 +00:00
import { AccessWrapper } from './Access.styled';
2022-08-04 22:20:48 +00:00
import { Login } from './login/Login';
2022-08-05 05:54:15 +00:00
import { CreateAccount } from './createAccount/CreateAccount';
2022-08-03 20:20:10 +00:00
2022-08-04 05:07:02 +00:00
import login from 'images/login.png'
2022-08-04 06:28:09 +00:00
export function Access({ mode }) {
2022-08-03 20:20:10 +00:00
const navigate = useNavigate();
const app = useContext(AppContext);
const viewport = useContext(ViewportContext);
useEffect(() => {
if (app.state) {
if (app.state.access) {
2022-08-04 22:20:48 +00:00
navigate('/session');
2022-08-03 20:20:10 +00:00
}
}
2022-08-05 05:54:15 +00:00
}, [app, navigate]);
2022-08-03 20:20:10 +00:00
2022-08-04 22:20:48 +00:00
const Prompt = () => {
if (mode === 'login') {
return <Login />
}
2022-08-05 05:54:15 +00:00
if (mode === 'create') {
return <CreateAccount />
}
2022-08-04 22:20:48 +00:00
return <></>
}
2022-08-03 20:20:10 +00:00
return (
2022-08-04 06:28:09 +00:00
<AccessWrapper>
{ (viewport.state.display === 'large' || viewport.state.display === 'xlarge') && (
2022-08-04 05:07:02 +00:00
<div class="split-layout">
<div class="left">
2022-08-05 19:36:07 +00:00
<img class="splash" src={login} alt="Databag Splash" />
2022-08-04 05:07:02 +00:00
</div>
2022-08-04 22:20:48 +00:00
<div class="right">
<Prompt />
</div>
2022-08-04 05:07:02 +00:00
</div>
2022-08-03 20:20:10 +00:00
)}
{ (viewport.state.display === 'medium' || viewport.state.display === 'small') && (
2022-08-04 05:07:02 +00:00
<div class="full-layout">
2022-08-04 22:20:48 +00:00
<div class="center">
<Prompt />
</div>
2022-08-04 05:07:02 +00:00
</div>
2022-08-03 20:20:10 +00:00
)}
2022-08-04 06:28:09 +00:00
</AccessWrapper>
2022-08-03 20:20:10 +00:00
);
}