Files
advanced_db/db_app/src/components/Login.js

155 lines
3.5 KiB
JavaScript
Raw Normal View History

2023-04-29 12:01:45 -04:00
import React,{useState, useEffect} from 'react';
2023-04-27 14:30:17 -04:00
import {Routes, Route, useNavigate} from 'react-router-dom';
2023-04-29 12:01:45 -04:00
import Axios from 'axios';
2023-04-27 14:30:17 -04:00
import './Login.css';
import Button from "@mui/material/Button";
import Card from "@mui/material/Card";
import TextField from "@mui/material/TextField";
import FormControlLabel from "@mui/material/FormControlLabel";
import Checkbox from "@mui/material/Checkbox";
import Link from "@mui/material/Link";
import Grid from "@mui/material/Grid";
import Box from "@mui/material/Box";
import Typography from "@mui/material/Typography";
import Container from "@mui/material/Container";
import {red, green, lightBlue, lightGreen} from '@mui/material/colors';
import { ThemeProvider, createTheme } from '@mui/material/styles';
import image from "./images/main_background.jpg"
2023-04-29 21:19:57 -04:00
import { ReactSession } from 'react-client-session';
2023-04-27 14:30:17 -04:00
const theme = createTheme({
palette: {
primary: {
main: lightGreen[700],
},
},
});
2023-04-29 12:01:45 -04:00
2023-04-29 21:19:57 -04:00
export function Login() {
2023-04-27 14:30:17 -04:00
const navigate = useNavigate();
const navigateCreateAccount = () => {
navigate('/CreateAccount');
}
const navigateHome = () => {
navigate('/Plan');
}
2023-04-29 21:19:57 -04:00
const [data,setData] = useState({
net_id:"",
2023-04-27 14:30:17 -04:00
password:""
})
2023-04-29 21:19:57 -04:00
const {net_id,password} = data;
2023-04-27 14:30:17 -04:00
const changeHandler = e => {
setData({...data,[e.target.name]:[e.target.value]});
}
const submitHandler = e => {
e.preventDefault();
console.log(data);
console.log(net_id[0])
2023-04-29 12:01:45 -04:00
login();
2023-04-27 14:30:17 -04:00
}
2023-04-29 12:01:45 -04:00
const setSession = () => {
ReactSession.set("net_id", net_id[0]);
}
2023-04-29 12:01:45 -04:00
const getHello = () => {
Axios.get("http://3.219.93.142:8000/").then((response) => {
console.log(response.data);
});
};
const login = () => {
Axios.post("http://3.219.93.142:8000/api/auth", {net_id: net_id[0], password: password[0],}).then((response) => {
console.log(response);
console.log(response.status);
if (response.status === 200){
setSession();
navigateHome();
}
2023-04-29 12:01:45 -04:00
});
};
return (
<ThemeProvider theme={theme}>
<div className='bg' style={{backgroundImage: 'url(' + require('./images/main_background.jpg') + ')'}}>
<div className='logbox'>
<Box
sx={{
marginTop: 8,
display: "flex",
flexDirection: "column",
alignItems: "center",
}}
>
<Typography component="h1" variant="h5">Log In</Typography>
<form className='formbox' onSubmit={submitHandler}>
<TextField
margin="normal"
required
fullWidth
id="net_id"
label="net_id"
name="net_id"
autoComplete="net_id"
autoFocus
value={net_id}
onChange={changeHandler}
/>
<TextField
margin="normal"
required
fullWidth
id="password"
label="Password"
name="password"
autoComplete="password"
autoFocus
value={password}
onChange={changeHandler}
/>
<Button
type="submit"
fullWidth
variant="contained"
sx={{ mt: 3, mb: 2 }}
>
Sign In</Button>
2023-04-27 14:30:17 -04:00
</form>
<Button
onClick={navigateCreateAccount}
fullWidth
variant="contained"
sx={{ mt: 3, mb: 2, width:1/4 }}
>Create Account</Button>
</Box>
2023-04-27 14:30:17 -04:00
</div>
</div>
</ThemeProvider>
2023-04-27 14:30:17 -04:00
);
}
export default Login;
2023-04-29 21:19:57 -04:00