diff --git a/src/App.js b/src/App.js
index 29530fe9d2..0a058dc3b3 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,11 +1,24 @@
import React from "react";
+import { Route, Routes } from 'react-router-dom';
+import Header from './components/Header';
+import Help from './components/Help';
+import PizzaForm from './components/PizzaForm';
+import Home from './components/Home';
+import OrderSuccess from './components/OrderSuccess';
-const App = () => {
+import "./App.css";
+
+function App() {
return (
- <>
-
Lambda Eats
- You can remove this code and create your own header
- >
+
+
+
+ } />
+ } />
+ } />
+ } />
+
+
);
-};
+}
export default App;
diff --git a/src/components/Header/index.css b/src/components/Header/index.css
new file mode 100644
index 0000000000..ea4b78a847
--- /dev/null
+++ b/src/components/Header/index.css
@@ -0,0 +1,20 @@
+
+.Nav-wrapper{
+ display: flex;
+ flex-direction: row;
+ gap: 16px;
+}
+.Nav-btn{
+ color: white;
+ border: solid 1px blue;
+ border-radius: 4px;;
+ padding: 6px 12px;
+ font-style: normal;
+ text-decoration: none;
+}
+.Nav-btn:hover{
+ background: rgb(51, 51, 132);
+}
+.Nav-btn-active{
+ background: blue;
+}
diff --git a/src/components/Header/index.js b/src/components/Header/index.js
new file mode 100644
index 0000000000..d9c0d79bda
--- /dev/null
+++ b/src/components/Header/index.js
@@ -0,0 +1,18 @@
+
+import React from 'react'
+import { Link, useLocation } from 'react-router-dom';
+import { useEffect, useState } from 'react'
+import "./index.css";
+
+export default function Index() {
+ let location = useLocation();
+ return (
+
+
LAMBDA EATS
+
+ Home
+ Help
+
+
+ )
+}
diff --git a/src/components/Help/index.js b/src/components/Help/index.js
new file mode 100644
index 0000000000..f30555a3b9
--- /dev/null
+++ b/src/components/Help/index.js
@@ -0,0 +1,7 @@
+import React from 'react'
+
+export default function Index() {
+ return (
+ Help page
+ )
+}
diff --git a/src/components/Home/index.js b/src/components/Home/index.js
new file mode 100644
index 0000000000..9d26ac568e
--- /dev/null
+++ b/src/components/Home/index.js
@@ -0,0 +1,18 @@
+
+import React from 'react'
+import { useNavigate } from 'react-router-dom';
+
+export default function Index() {
+ const navigate = useNavigate();
+ const handleClick = () => {
+ navigate('/pizza');
+ }
+ return (
+
+
+
Your favorite food, delivered while coding
+
+
+
+ )
+}
diff --git a/src/components/OrderSuccess/index.js b/src/components/OrderSuccess/index.js
new file mode 100644
index 0000000000..abe19a2798
--- /dev/null
+++ b/src/components/OrderSuccess/index.js
@@ -0,0 +1,11 @@
+import React from 'react'
+
+export default function Index() {
+ return (
+
+
+
Congrats! Pizza is on its way!
+
+
+ )
+}
diff --git a/src/components/PizzaForm/index.css b/src/components/PizzaForm/index.css
new file mode 100644
index 0000000000..c621bff5e3
--- /dev/null
+++ b/src/components/PizzaForm/index.css
@@ -0,0 +1,62 @@
+
+.form-wrapper{
+ max-width: 700px;
+ text-align: center;
+ margin: auto;
+ margin-top: 40px;
+ border: 1px solid grey;
+ border-radius: 8px;
+}
+.form-title{
+ font-size: 24px;
+ font-weight: 600;
+}
+.form-pizza{
+ width: 100%;
+ height: 200px;
+ background: url(../../../Assets/Pizza.jpg);
+}
+#pizza-form{
+ padding: 8px;
+}
+.form-group{
+ text-align: left;
+ width: 100%;
+ margin-bottom: 8px;
+}
+label{
+ padding: 10px;
+ background: grey;
+ display: block;
+ margin-bottom: 8px;
+}
+input{
+ width: calc(100% - 8px);
+ font-size: 20px;
+}
+#size-dropdown{
+ width: 150px;
+ font-size: 16px;
+}
+#order-button{
+ padding: 12px 24px;
+ font-size: 20px;
+ border-radius: 6px;
+ border: 1px blue solid;
+}
+#order-button:hover{
+ background: rgb(88, 88, 193);
+}
+.error{
+ margin: 8px;
+ color: red;
+ font-weight: bold;
+}
+.checkbox{
+ width: 30px;
+}
+.checkbox-wrapper{
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 10px;
+}
diff --git a/src/components/PizzaForm/index.js b/src/components/PizzaForm/index.js
new file mode 100644
index 0000000000..6db576131b
--- /dev/null
+++ b/src/components/PizzaForm/index.js
@@ -0,0 +1,97 @@
+import React from 'react'
+import { useState } from 'react'
+import { useNavigate } from 'react-router-dom';
+import axios from 'axios'
+import "./index.css";
+
+export default function Index() {
+ const navigate = useNavigate();
+ const [name, setName] = useState('');
+ const [err, setErr] = useState(false);
+ const [size, setSize] = useState('Small');
+ const [special, setSpecial] = useState('');
+
+ const toppingList = ['Pepperoni', 'Sousage', 'Cabaduab Bacon', 'Spicy Halian Sausage', 'Grilled Chicker', 'Onions', 'Green Pepper', 'Diced Tomatos', 'Black Olives', 'Roasted Garlic', 'Artichoke Hearts', 'Three Cheese', 'Pineapple', 'Extra Cheese'];
+
+ const handleSubmit = event => {
+ event.preventDefault();
+ if (name.length < 2)
+ {
+ setErr(true);
+ }
+ else
+ {
+ const order = {};
+ console.log(`Name: ${name}, Size: ${size}, Special: ${special}`);
+ const toppingsChecklist = document.querySelectorAll('[type="checkbox"]');
+
+ order['name'] = name;
+ order['size'] = size;
+ order['special'] = special;
+ toppingsChecklist.forEach(top => {
+ order[top.name] = top.checked ? true : false
+ })
+ axios.post("https://reqres.in/api/orders", order);
+ navigate('/success');
+ }
+ }
+
+ const handleInputName = event => {
+ if (event.target.value.length >= 2)
+ setErr(false);
+ else
+ setErr(true);
+ setName(event.target.value);
+ }
+
+ const handleSelectSize = event => {
+ setSize(event.target.value);
+ }
+
+ const handleInputSpecial = event => {
+ setSpecial(event.target.value);
+ }
+ return (
+
+
Build your own Pizza
+
+
+
+ )
+}
diff --git a/src/index.js b/src/index.js
index afed62d599..9488cc06e5 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,6 +1,14 @@
import React from "react";
import ReactDOM from "react-dom";
+import { BrowserRouter as Router } from "react-router-dom";
import "./index.css";
import App from "./App";
-ReactDOM.render(, document.getElementById("root"));
+ReactDOM.render(
+
+
+
+
+ ,
+ document.getElementById('root')
+);