From b542cf1f7cba39800016470a8bcde06e398c3d3b Mon Sep 17 00:00:00 2001 From: Pratyay Roy <59203815+DarkFalc0n@users.noreply.github.com> Date: Tue, 15 Feb 2022 20:19:59 +0530 Subject: [PATCH] added login and reg page --- frontend/components/Login/Login.jsx | 87 +++++++ frontend/components/Login/Login.style.js | 13 + frontend/components/NavBar/index.js | 307 +++++++++++++---------- frontend/components/Reg/Reg.jsx | 160 +++++++----- frontend/components/Reg/styles.css | 106 -------- frontend/jsconfig.json | 5 +- frontend/package-lock.json | 93 +++++++ frontend/package.json | 3 +- frontend/pages/_app.js | 15 +- frontend/pages/index.js | 44 ++-- frontend/pages/login.js | 14 ++ frontend/pages/user/usercontext.js | 24 ++ frontend/public/images/user.png | Bin 0 -> 32272 bytes frontend/styles/styles.css | 107 ++++++++ 14 files changed, 657 insertions(+), 321 deletions(-) create mode 100644 frontend/components/Login/Login.jsx create mode 100644 frontend/components/Login/Login.style.js delete mode 100644 frontend/components/Reg/styles.css create mode 100644 frontend/pages/login.js create mode 100644 frontend/pages/user/usercontext.js create mode 100644 frontend/public/images/user.png create mode 100644 frontend/styles/styles.css diff --git a/frontend/components/Login/Login.jsx b/frontend/components/Login/Login.jsx new file mode 100644 index 0000000..74938af --- /dev/null +++ b/frontend/components/Login/Login.jsx @@ -0,0 +1,87 @@ +import React from "react"; +import LoginStyle from "./Login.style"; +import AccountCircleIcon from "@mui/icons-material/AccountCircle"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faUser, + faEnvelope, + faLock, + faClose, +} from "@fortawesome/free-solid-svg-icons"; +import { UserContext } from "../../pages/user/usercontext"; +import { useState } from "react"; +import Link from "next/link"; +import { useContext } from "react"; + +function Login() { + const [userData, setUserData] = useState({ + email: "", + password: "", + }); + + const handleInput = (event) => { + const name = event.target.name; + const value = event.target.value; + setUserData({ ...userData, [name]: value }); + }; + + return ( + +
+
+ +
+ +

Sign in

+ + + +
+
+ +
+ +
+
+
+ +
+ +
+ + + +

+ New here?  + + Create an account + +

+
+
+ ); +} +export default Login; diff --git a/frontend/components/Login/Login.style.js b/frontend/components/Login/Login.style.js new file mode 100644 index 0000000..6883254 --- /dev/null +++ b/frontend/components/Login/Login.style.js @@ -0,0 +1,13 @@ +import styled from "styled-components" + +export default styled.section` + display: flex; + justify-content:center; + align-items:center; + .content { + display: flex; + justify-content:center; + align-items:center; + flex-direction:column; + } +` \ No newline at end of file diff --git a/frontend/components/NavBar/index.js b/frontend/components/NavBar/index.js index b53ba63..44da41e 100644 --- a/frontend/components/NavBar/index.js +++ b/frontend/components/NavBar/index.js @@ -1,136 +1,191 @@ -import React from 'react'; -import {Avatar, Box, Button, Container, IconButton, Menu, MenuItem, Toolbar, Tooltip, Typography,alpha} from "@mui/material"; -import GitHubIcon from '@mui/icons-material/GitHub'; -import MenuIcon from '@mui/icons-material/Menu'; +import React, { useContext } from "react"; +import { + Avatar, + Box, + Button, + Container, + IconButton, + Menu, + MenuItem, + Toolbar, + Tooltip, + Typography, + alpha, +} from "@mui/material"; +import GitHubIcon from "@mui/icons-material/GitHub"; +import MenuIcon from "@mui/icons-material/Menu"; import NavbarStyle from "./Navbar.style"; -import Logo from './Logo'; - -const settings = ['Profile', 'Account', 'Dashboard', 'Logout']; +import Logo from "./Logo"; +import UserAuth, { UserContext } from "pages/user/usercontext"; +import Link from "next/link"; +const settings = ["Profile", "Account", "Dashboard", "Logout"]; function Index(props) { - const [anchorElNav, setAnchorElNav] = React.useState(null); - const [anchorElUser, setAnchorElUser] = React.useState(null); + const [anchorElNav, setAnchorElNav] = React.useState(null); + const [anchorElUser, setAnchorElUser] = React.useState(null); - const handleOpenNavMenu = (event) => { - setAnchorElNav(event.currentTarget); - }; - const handleOpenUserMenu = (event) => { - setAnchorElUser(event.currentTarget); - }; + const handleOpenNavMenu = (event) => { + setAnchorElNav(event.currentTarget); + }; + const handleOpenUserMenu = (event) => { + setAnchorElUser(event.currentTarget); + }; - const handleCloseNavMenu = () => { - setAnchorElNav(null); - }; + const handleCloseNavMenu = () => { + setAnchorElNav(null); + }; - const handleCloseUserMenu = () => { - setAnchorElUser(null); - }; + const handleCloseUserMenu = () => { + setAnchorElUser(null); + }; - return ( - - - - - URL MINIFY - - - - - - - - - - - - GitHub - - - - - - CRIDITS - - - - - - - - - - - - + const { user, login, logout } = useContext(UserAuth); - - - - - - - - {settings.map((setting) => ( - - {setting} - - ))} - - - - - - ); + return ( + + + + + URL MINIFY + + + + + + + + + + + GitHub + + + + + + CREDITS + + + + + + + + + + + + + {user ? ( + + + + + + + + {settings.map((setting) => ( + + {setting} + + ))} + + + ) : ( + + LOGIN + + )} + + + + ); } -export default Index; \ No newline at end of file +export default Index; diff --git a/frontend/components/Reg/Reg.jsx b/frontend/components/Reg/Reg.jsx index 7bdec2a..1f8b25f 100644 --- a/frontend/components/Reg/Reg.jsx +++ b/frontend/components/Reg/Reg.jsx @@ -1,67 +1,105 @@ -import React from 'react'; +import React from "react"; import RegStyle from "./Reg.style"; -import Image from 'next/image' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faUser, faEnvelope, faLock, faClose } from '@fortawesome/free-solid-svg-icons' -import { useState } from 'react'; -import { Link } from '@mui/material'; +import Image from "next/image"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faUser, + faEnvelope, + faLock, + faClose, +} from "@fortawesome/free-solid-svg-icons"; +import { useState } from "react"; +import { Link } from "@mui/material"; -function Reg(){ +function Reg() { + const [userData, setUserData] = useState({ + username: "", + email: "", + password: "", + repassword: "", + }); - const [userData, setUserData] = useState({ - username: "", - email: "", - password:"", - repassword:"" - }) + const handleInput = (event) => { + const name = event.target.name; + const value = event.target.value; + setUserData({ ...userData, [name]: value }); + }; - const handleInput = (event) => { - const name = event.target.name; - const value = event.target.value; - setUserData({ ...userData, [name]: value}) - } + return ( + +
+
+ +
- return( - - -
- -
- -

Sign Up

-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
- -

Already registered? Login  - here -

- - - -
- - ) +

Sign Up

+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+ +

+ Already registered? Login  + + here + +

+ +
+ ); } -export default Reg; \ No newline at end of file +export default Reg; diff --git a/frontend/components/Reg/styles.css b/frontend/components/Reg/styles.css deleted file mode 100644 index 4ccb71b..0000000 --- a/frontend/components/Reg/styles.css +++ /dev/null @@ -1,106 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;400;500;700&display=swap'); - -.reg-label{ - font-size: 24px; - width: 30px; - color: #9134bd; - position: relative; -} -.reg-title{ - font-family: 'Montserrat', sans-serif; - font-weight: 700; - font-size: 36px; - text-align: center; - margin-bottom: 40px; - color:#9134bd; -} -.reg-wide-container{ - width: 100%; - text-align: right; - color: #9134bd; - font-size: 24px; -} -.reg-input{ - margin-left: 10px; - height: 35px; - width: 340px; - font-family: 'Montserrat', sans-serif; - font-weight: 400; - font-size: 16px; - border-radius: 20px; - padding: 10px; - border: none; - justify-content: flex-end; - color: #9134bd; -} -.reg-input:active, .reg-input:focus{ - outline: none; -} -.reg-input::placeholder{ - color: #6babc7; -} -.reg-field{ - display: flex; - flex-direction: row; - justify-content: flex-end; - margin-bottom: 20px; - margin-left: 20px; - margin-right: 20px; -} -.form-wrapper{ - background-color: rgba(255,255,255,0.5); - padding: 20px 30px 40px 30px; - border-radius: 20px; - font-size: 24px; - text-align: center; - backdrop-filter: blur(6px); - border-style: solid; - border-color: #f1faff; - border-width: 1px 0px 0px 1px; - margin-top: 0; -} -.submit-button{ - - width: 100px; - height: 40px; - font-family: 'Montserrat', sans-serif; - font-weight: 400; - font-size: 18px; - border-radius: 10px; - border: none; - margin-top: 20px ; - background-image: linear-gradient(135deg ,#cc5fff, #7E3EE4, #0087ca, #2db9ff); - background-size: 200%; - background-position: left; - color: white; - transition: 0.5s; -} -.submit-button:hover{ - background-position: right; -} -.submit-button:active{ - transform: scale(0.95); - transition: 0.1s -} - -.icon{ - fill: black; -} - -.foot-text{ - font-family: 'Montserrat', sans-serif; - font-weight: 400; - font-size: 18px; - margin-top: 50px; - color: black; - text-decoration: none; -} - -.underline{ - text-decoration: underline; - color: #9134bd; -} -.underline:hover{ - color: #008ed4; - transition: 0.5s; -} diff --git a/frontend/jsconfig.json b/frontend/jsconfig.json index b639b0f..e5bd45a 100644 --- a/frontend/jsconfig.json +++ b/frontend/jsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { - "baseUrl": "." + "baseUrl": ".", + "paths": { "@pages/*": ["pages/*"] } } -} \ No newline at end of file +} diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 5e18b75..1b85498 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -738,6 +738,19 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, "hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -775,6 +788,11 @@ "has": "^1.0.3" } }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -808,6 +826,15 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", + "requires": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -870,6 +897,14 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -942,6 +977,44 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "react-router": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.1.tgz", + "integrity": "sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ==", + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "react-router-dom": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.0.tgz", + "integrity": "sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ==", + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.1", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, "react-transition-group": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", @@ -973,6 +1046,11 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -1042,6 +1120,16 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, + "tiny-invariant": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", + "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -1055,6 +1143,11 @@ "object-assign": "^4.1.1" } }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", diff --git a/frontend/package.json b/frontend/package.json index b11fac0..1611d1b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -19,8 +19,9 @@ "@mui/material": "^5.4.0", "@mui/styled-engine-sc": "^5.3.0", "next": "12.0.9", - "react": "17.0.2", + "react": "^17.0.2", "react-dom": "17.0.2", + "react-router-dom": "^5.3.0", "styled-components": "^5.3.3" }, "license": "MIT", diff --git a/frontend/pages/_app.js b/frontend/pages/_app.js index 5d25c53..adb3425 100644 --- a/frontend/pages/_app.js +++ b/frontend/pages/_app.js @@ -1,9 +1,14 @@ -import '../styles/globals.css' -import '../styles/logostyles.css' -import '../components/Reg/styles.css' +import "../styles/globals.css"; +import "../styles/logostyles.css"; +import "../styles/styles.css"; +import { UserAuthProvider } from "./user/usercontext"; function MyApp({ Component, pageProps }) { - return + return ( + + + + ); } -export default MyApp +export default MyApp; diff --git a/frontend/pages/index.js b/frontend/pages/index.js index 85a1ae8..3667826 100644 --- a/frontend/pages/index.js +++ b/frontend/pages/index.js @@ -1,25 +1,29 @@ -import { useState } from 'react' -import Head from 'next/head' -import HomeSection from "components/HomeSection/homeSection" +import { useState, useMemo } from "react"; +import Head from "next/head"; +import HomeSection from "components/HomeSection/homeSection"; import NavBar from "components/NavBar"; -import Features from 'components/Features' - +import Features from "components/Features"; +import Reg from "components/Reg/Reg"; +import Login from "components/Login/Login"; +import { UserAuthProvider, UserContext } from "./user/usercontext"; +import { BrowserRouter as Router, Route, Link } from "react-router-dom"; export default function Home() { - const [shortUrl, setShortUrl] = useState(null) - const [longURL, setLongURL] = useState('') - return ( -
- - URL MiniFy - - + const [shortUrl, setShortUrl] = useState(null); + const [longURL, setLongURL] = useState(""); -
- - - -
-
- ) + return ( + <> + + URL MiniFy + + + +
+ + + +
+ + ); } diff --git a/frontend/pages/login.js b/frontend/pages/login.js new file mode 100644 index 0000000..db6cc8e --- /dev/null +++ b/frontend/pages/login.js @@ -0,0 +1,14 @@ +import { useState } from "react"; +import Head from "next/head"; +import NavBar from "components/NavBar"; +import Features from "components/Features"; +import Login from "components/Login/Login"; + +export default function signup() { + return ( +
+ + +
+ ); +} diff --git a/frontend/pages/user/usercontext.js b/frontend/pages/user/usercontext.js new file mode 100644 index 0000000..a92199b --- /dev/null +++ b/frontend/pages/user/usercontext.js @@ -0,0 +1,24 @@ +import { createContext } from "react"; +import { useState } from "react"; + +const UserAuth = createContext({ + user: null, + login: () => {}, + logout: () => {}, +}); + +export const UserAuthProvider = ({ children }) => { + const [user, setUser] = useState(null); + const login = () => { + setUser("default"); + }; + + const logout = () => { + setUser(null); + }; + const context = { user, login, logout }; + + return {children}; +}; + +export default UserAuth; diff --git a/frontend/public/images/user.png b/frontend/public/images/user.png new file mode 100644 index 0000000000000000000000000000000000000000..fe67d03f9fe1241b16f73663caf59ab5d7a6524e GIT binary patch literal 32272 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