mirror of
https://gitea.smigz.com/smiggiddy/odin-codeprojects.git
synced 2024-12-26 22:30:44 -05:00
feat: navbar logic added
This commit is contained in:
parent
c104a1b905
commit
646cd5e89a
3 changed files with 141 additions and 11 deletions
17
restaurant/src/components/contact.js
Normal file
17
restaurant/src/components/contact.js
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
function contactComponent(){
|
||||||
|
let div = document.createElement('contact');
|
||||||
|
div.classList.add(['contact']);
|
||||||
|
|
||||||
|
let name = document.createElement('h2');
|
||||||
|
name.textContent = 'This Wondrous Life';
|
||||||
|
|
||||||
|
let link = document.createElement('p');
|
||||||
|
link.textContent = 'https://thiswondrouslife.com';
|
||||||
|
|
||||||
|
div.appendChild(name);
|
||||||
|
div.appendChild(link);
|
||||||
|
|
||||||
|
return div;
|
||||||
|
}
|
||||||
|
|
||||||
|
export { contactComponent };
|
76
restaurant/src/components/menu.js
Normal file
76
restaurant/src/components/menu.js
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
const menuItems = {
|
||||||
|
"drinks": [
|
||||||
|
{
|
||||||
|
"item": "latte",
|
||||||
|
"price": 2.99,
|
||||||
|
"desc": "A nice homemade latte from the Breville."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": "nespresso",
|
||||||
|
"price": 2.49,
|
||||||
|
"desc": "a nespresso pod coffee"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": "tea",
|
||||||
|
"price": 2,
|
||||||
|
"desc": "a steeped tea for ninjas"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"snacks": [
|
||||||
|
{
|
||||||
|
"item": "cookies",
|
||||||
|
"price": 3.99,
|
||||||
|
"desc": "homemade chocolate chip cookies or another delicious treat"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": "pumpkin cake",
|
||||||
|
"price": 9.99,
|
||||||
|
"desc": "homemade pumpkin cake, leaving you wanting more"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
function menuComponent(){
|
||||||
|
const div = document.createElement('div');
|
||||||
|
div.classList.add(['cards']);
|
||||||
|
|
||||||
|
const drinkHeader = document.createElement('h2');
|
||||||
|
const snackHeader = document.createElement('h2');
|
||||||
|
drinkHeader.classList.add('header');
|
||||||
|
snackHeader.classList.add('header');
|
||||||
|
|
||||||
|
drinkHeader.textContent = 'Drinks';
|
||||||
|
snackHeader.textContent = 'Snacks';
|
||||||
|
|
||||||
|
let drinks = card(menuItems['drinks']);
|
||||||
|
let snacks = card(menuItems['snacks']);
|
||||||
|
|
||||||
|
div.appendChild(drinkHeader);
|
||||||
|
drinks.forEach(e => div.appendChild(e));
|
||||||
|
div.appendChild(snackHeader);
|
||||||
|
snacks.forEach(e => div.appendChild(e));
|
||||||
|
|
||||||
|
return div;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function card(item) {
|
||||||
|
return item.map(element => {
|
||||||
|
let div = document.createElement('div');
|
||||||
|
div.classList.add(['card']);
|
||||||
|
|
||||||
|
let item = document.createElement('p');
|
||||||
|
let price = document.createElement('p');
|
||||||
|
let desc = document.createElement('p');
|
||||||
|
item.textContent = element.item;
|
||||||
|
price.textContent = element.price;
|
||||||
|
desc.textContent = element.desc;
|
||||||
|
|
||||||
|
div.appendChild(item);
|
||||||
|
div.appendChild(price);
|
||||||
|
div.appendChild(desc);
|
||||||
|
return div;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export { menuComponent };
|
|
@ -4,11 +4,24 @@ import { menuBar as navbar } from "./components/navbar";
|
||||||
import { menuComponent } from "./components/menu";
|
import { menuComponent } from "./components/menu";
|
||||||
import './style.css'
|
import './style.css'
|
||||||
|
|
||||||
|
let _carousel = carousel.createComponent();
|
||||||
|
|
||||||
|
function website() {
|
||||||
|
|
||||||
|
// Navbar
|
||||||
|
document.body.appendChild(nav());
|
||||||
|
|
||||||
|
loadPage();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
function nav(){
|
function nav(){
|
||||||
const element = document.createElement('header');
|
const element = document.createElement('header');
|
||||||
const brandName = document.createElement('h1');
|
const brandName = document.createElement('h1');
|
||||||
let menu = new navbar();
|
|
||||||
|
|
||||||
|
let menu = new navbar();
|
||||||
|
menu.addEventListener('click', e => loadPage(e.target.outerText));
|
||||||
|
|
||||||
brandName.style.textAlign = 'center';
|
brandName.style.textAlign = 'center';
|
||||||
brandName.textContent = 'This Wondrous Coffee';
|
brandName.textContent = 'This Wondrous Coffee';
|
||||||
|
|
||||||
|
@ -16,19 +29,43 @@ function nav(){
|
||||||
element.appendChild(menu);
|
element.appendChild(menu);
|
||||||
|
|
||||||
return element;
|
return element;
|
||||||
|
};
|
||||||
|
|
||||||
|
function loadPage(page='home') {
|
||||||
|
let home = _carousel;
|
||||||
|
let menu = menuComponent();
|
||||||
|
let contact = contactComponent();
|
||||||
|
let contentData;
|
||||||
|
|
||||||
|
switch(page){
|
||||||
|
case 'menu':
|
||||||
|
contentData = content(menu);
|
||||||
|
break;
|
||||||
|
case 'contact':
|
||||||
|
contentData = content(contact);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
contentData = content(home);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
console.log(contentData);
|
||||||
|
document.body.appendChild(contentData);
|
||||||
}
|
}
|
||||||
|
|
||||||
function content(data) {
|
function content(data) {
|
||||||
const content = document.createElement('div');
|
const old = document.querySelector('.content');
|
||||||
content.classList.add('content');
|
if (old) {
|
||||||
|
console.log(old);
|
||||||
|
old.textContent = '';
|
||||||
|
document.body.removeChild(old);
|
||||||
|
}
|
||||||
|
const _content = document.createElement('div');
|
||||||
|
_content.classList.add('content');
|
||||||
|
_content.appendChild(data);
|
||||||
|
|
||||||
console.log(data);
|
return _content;
|
||||||
|
|
||||||
return content;
|
};
|
||||||
|
|
||||||
}
|
website();
|
||||||
let carouselComponent = carousel.createComponent();
|
|
||||||
document.body.appendChild(nav());
|
|
||||||
document.body.appendChild(carouselComponent);
|
|
||||||
document.body.appendChild(menuComponent());
|
|
||||||
document.body.appendChild(contactComponent());
|
|
||||||
|
|
Loading…
Reference in a new issue