diff --git a/db_app/package-lock.json b/db_app/package-lock.json index 983bbc4..2888965 100644 --- a/db_app/package-lock.json +++ b/db_app/package-lock.json @@ -13,6 +13,7 @@ "@testing-library/user-event": "^13.5.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-router-dom": "^6.10.0", "react-scripts": "5.0.1", "web-vitals": "^2.1.4" } @@ -3106,6 +3107,14 @@ } } }, + "node_modules/@remix-run/router": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz", + "integrity": "sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==", + "engines": { + "node": ">=14" + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -14350,6 +14359,36 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.10.0.tgz", + "integrity": "sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==", + "dependencies": { + "@remix-run/router": "1.5.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.10.0.tgz", + "integrity": "sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==", + "dependencies": { + "@remix-run/router": "1.5.0", + "react-router": "6.10.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, "node_modules/react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", @@ -19366,6 +19405,11 @@ "source-map": "^0.7.3" } }, + "@remix-run/router": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.5.0.tgz", + "integrity": "sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==" + }, "@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -27382,6 +27426,23 @@ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" }, + "react-router": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.10.0.tgz", + "integrity": "sha512-Nrg0BWpQqrC3ZFFkyewrflCud9dio9ME3ojHCF/WLsprJVzkq3q3UeEhMCAW1dobjeGbWgjNn/PVF6m46ANxXQ==", + "requires": { + "@remix-run/router": "1.5.0" + } + }, + "react-router-dom": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.10.0.tgz", + "integrity": "sha512-E5dfxRPuXKJqzwSe/qGcqdwa18QiWC6f3H3cWXM24qj4N0/beCIf/CWTipop2xm7mR0RCS99NnaqPNjHtrAzCg==", + "requires": { + "@remix-run/router": "1.5.0", + "react-router": "6.10.0" + } + }, "react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", diff --git a/db_app/package.json b/db_app/package.json index 95b65e5..be2c9d2 100644 --- a/db_app/package.json +++ b/db_app/package.json @@ -8,6 +8,7 @@ "@testing-library/user-event": "^13.5.0", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-router-dom": "^6.10.0", "react-scripts": "5.0.1", "web-vitals": "^2.1.4" }, diff --git a/db_app/src/App.js b/db_app/src/App.js index 9ec888d..9b79e86 100644 --- a/db_app/src/App.js +++ b/db_app/src/App.js @@ -1,38 +1,27 @@ -import React,{useState} from 'react'; -import './App.css'; +import "./App.css"; +import Login from "./components/Login"; +import CreateAccount from "./components/CreateAccount"; + + +import { + BrowserRouter as Router, + Routes, + Route, + useNavigate, +} from 'react-router-dom'; function App() { - const [data,setData] = useState({ - username:"", - password:"" - }) + + - const {username,password} = data; - - const changeHandler = e => { - setData({...data,[e.target.name]:[e.target.value]}); - } - - const submitHandler = e => { - e.preventDefault(); - console.log(data); - } - - return ( -
-
-

Log In

-

Log in to your account

-
-
-
- -
- -
-
- - ); - } - - export default App; + return ( + + + }> + }> + + + ); +} + +export default App; diff --git a/db_app/src/components/CreateAccount.js b/db_app/src/components/CreateAccount.js new file mode 100644 index 0000000..1bb93e0 --- /dev/null +++ b/db_app/src/components/CreateAccount.js @@ -0,0 +1,19 @@ +import React,{useState} from 'react'; +import {Routes, Route, useNavigate} from 'react-router-dom'; +import './Login.css'; + +function CreateAccount() { + + + return ( +
+
+

Create Account

+ +
+
+ + ); + } + + export default CreateAccount; diff --git a/db_app/src/components/Login.css b/db_app/src/components/Login.css new file mode 100644 index 0000000..e09cf1d --- /dev/null +++ b/db_app/src/components/Login.css @@ -0,0 +1,39 @@ +.App { + text-align: center; + } + + .App-logo { + height: 40vmin; + pointer-events: none; + } + + @media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } + } + + .App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; + } + + .App-link { + color: #61dafb; + } + + @keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } + } + \ No newline at end of file diff --git a/db_app/src/components/Login.js b/db_app/src/components/Login.js new file mode 100644 index 0000000..fa67232 --- /dev/null +++ b/db_app/src/components/Login.js @@ -0,0 +1,45 @@ +import React,{useState} from 'react'; +import {Routes, Route, useNavigate} from 'react-router-dom'; +import './Login.css'; + +function Login() { + const navigate = useNavigate(); + + const navigateCreateAccount = () => { + navigate('/CreateAccount'); + } + + const [data,setData] = useState({ + username:"", + password:"" + }) + + const {username,password} = data; + + const changeHandler = e => { + setData({...data,[e.target.name]:[e.target.value]}); + } + + const submitHandler = e => { + e.preventDefault(); + console.log(data); + } + + return ( +
+
+

Log In

+

Log in to your account

+
+
+
+ +
+ +
+
+ + ); + } + + export default Login;