Skip to content
Snippets Groups Projects
Commit ec44a383 authored by Bastien Cortequisse's avatar Bastien Cortequisse
Browse files

C fini

parent f98a536c
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,7 @@ export default class Router { ...@@ -2,6 +2,7 @@ export default class Router {
static titleElement; static titleElement;
static contentElement; static contentElement;
static routes = []; static routes = [];
static #menuElement;
static navigate(path) { static navigate(path) {
const route = this.routes.find(route => route.path === path); const route = this.routes.find(route => route.path === path);
...@@ -10,4 +11,21 @@ export default class Router { ...@@ -10,4 +11,21 @@ export default class Router {
this.contentElement.innerHTML = route.page.render(); this.contentElement.innerHTML = route.page.render();
} }
} }
static set menuElement(element) {
this.#menuElement = element;
// au clic sur n'importe quel lien contenu dans "element"
// déclenchez un appel à Router.navigate(path)
// où "path" est la valeur de l'attribut `href=".."` du lien cliqué
const tab = element.querySelectorAll('a');
for (let i = 0; i < tab.length; i++) {
tab[i].addEventListener('click', event => {
event.preventDefault();
console.log(
"tab[i].getAttribute('href')" + tab[i].getAttribute('href')
);
Router.navigate(tab[i].getAttribute('href'));
});
}
}
} }
import Router from './Router'; import Router from './Router';
import data from './data'; import data from './data';
import PizzaList from './pages/PizzaList'; import PizzaList from './pages/PizzaList';
import Component from './components/Component.js';
Router.titleElement = document.querySelector('.pageTitle'); Router.titleElement = document.querySelector('.pageTitle');
Router.contentElement = document.querySelector('.pageContent'); Router.contentElement = document.querySelector('.pageContent');
document.querySelector('.logo').innerHTML +=
"<small>les pizzas c'est la vie</small>";
console.log(
document.querySelector('footer > div > a ~ a').getAttribute('href')
);
document
.querySelector('header > nav > ul > li > a')
.setAttribute('class', 'active');
document.querySelector('section').setAttribute('style', '');
document
.querySelector('section > article > button')
.addEventListener('click', event => {
event.preventDefault();
document.querySelector('section').setAttribute('style', 'display:none');
});
const pizzaList = new PizzaList([]); const pizzaList = new PizzaList([]);
Router.routes = [{ path: '/', page: pizzaList, title: 'La carte' }]; const aboutPage = new Component('section', null, 'Ce site est génial');
const pizzaForm = new Component(
'section',
null,
'Ici vous pourrez ajouter une pizza'
);
Router.routes = [
{ path: '/', page: pizzaList, title: 'La carte' },
{ path: '/a-propos', page: aboutPage, title: 'À propos' },
{ path: '/ajouter-pizza', page: pizzaForm, title: 'Ajouter une pizza' },
];
Router.navigate('/'); // affiche une page vide
pizzaList.pizzas = data; pizzaList.pizzas = data;
Router.navigate('/'); // affiche la liste des pizzas Router.navigate('/'); // affiche la liste des pizzas
Router.menuElement = document.querySelector('.mainMenu');
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment