From 50204599b4adfbcccf4e87bce6760fff6364760f Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Wed, 14 Dec 2022 05:36:53 -0500 Subject: [PATCH] Derp --- web/src/components/App.js | 2 + web/src/components/Login.js | 20 +-- web/src/components/Signup.js | 94 +++++++++++++ web/src/img/ntfy2.svg | 255 +++++++++++++++++++++++++++++++++++ 4 files changed, 353 insertions(+), 18 deletions(-) create mode 100644 web/src/components/Signup.js create mode 100644 web/src/img/ntfy2.svg diff --git a/web/src/components/App.js b/web/src/components/App.js index f0c48dec..36c90f76 100644 --- a/web/src/components/App.js +++ b/web/src/components/App.js @@ -30,6 +30,7 @@ import api from "../app/Api"; import prefs from "../app/Prefs"; import session from "../app/Session"; import Pricing from "./Pricing"; +import Signup from "./Signup"; // TODO races when two tabs are open // TODO investigate service workers @@ -45,6 +46,7 @@ const App = () => { }/> }/> }/> + }/> }> }/> }/> diff --git a/web/src/components/Login.js b/web/src/components/Login.js index 7f1469d3..eefc4b36 100644 --- a/web/src/components/Login.js +++ b/web/src/components/Login.js @@ -1,29 +1,14 @@ import * as React from 'react'; -import {Avatar, Checkbox, FormControlLabel, Grid, Link, Stack} from "@mui/material"; +import {Avatar, Checkbox, FormControlLabel, Grid, Link} from "@mui/material"; import Typography from "@mui/material/Typography"; -import Container from "@mui/material/Container"; import LockOutlinedIcon from '@mui/icons-material/LockOutlined'; import TextField from "@mui/material/TextField"; import Button from "@mui/material/Button"; import Box from "@mui/material/Box"; import api from "../app/Api"; -import {useNavigate} from "react-router-dom"; import routes from "./routes"; import session from "../app/Session"; -const Copyright = (props) => { - return ( - - {'Copyright © '} - - Your Website - {' '} - {new Date().getFullYear()} - {'.'} - - ); -}; - const Login = () => { const handleSubmit = async (event) => { event.preventDefault(); @@ -93,14 +78,13 @@ const Login = () => { - + {"Don't have an account? Sign Up"} - ); } diff --git a/web/src/components/Signup.js b/web/src/components/Signup.js new file mode 100644 index 00000000..408ca6ae --- /dev/null +++ b/web/src/components/Signup.js @@ -0,0 +1,94 @@ +import * as React from 'react'; +import {Avatar, Checkbox, FormControlLabel, Grid, Link, Stack} from "@mui/material"; +import Typography from "@mui/material/Typography"; +import Container from "@mui/material/Container"; +import LockOutlinedIcon from '@mui/icons-material/LockOutlined'; +import TextField from "@mui/material/TextField"; +import Button from "@mui/material/Button"; +import Box from "@mui/material/Box"; +import api from "../app/Api"; +import {useNavigate} from "react-router-dom"; +import routes from "./routes"; +import session from "../app/Session"; + +const Signup = () => { + const handleSubmit = async (event) => { + event.preventDefault(); + const data = new FormData(event.currentTarget); + const user = { + username: data.get('username'), + password: data.get('password'), + } + const token = await api.login("http://localhost:2586"/*window.location.origin*/, user); + console.log(`[Api] User auth for user ${user.username} successful, token is ${token}`); + session.store(user.username, token); + window.location.href = routes.app; + }; + + return ( + <> + + + + + + Sign in + + + + + } + label="Remember me" + /> + + + + + Forgot password? + + + + + {"Don't have an account? Sign Up"} + + + + + + + ); +} + +export default Signup; diff --git a/web/src/img/ntfy2.svg b/web/src/img/ntfy2.svg new file mode 100644 index 00000000..cd5f908e --- /dev/null +++ b/web/src/img/ntfy2.svg @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + +