diff --git a/package.json b/package.json
index c41a110ca19262f50af831518d2d2dc6098b0615..abdfa619e9426f7c982feea585be7add72473e18 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack --mode=production",
- "watch": "webpack --mode=development --watch"
+ "watch": "webpack --mode=development --watch"
},
"author": "Thomas Fritsch <thomas.fritsch@univ-lille.fr> (https://gitlab.univ-lille.fr/thomas.fritsch)",
"homepage": "https://gitlab.univ-lille.fr/js",
diff --git a/src/Router.js b/src/Router.js
index 7aef0711884fbc5af076fc2d62abd4dc61ad0d00..85b62de80f7071caae0f11e69741d1703323d607 100644
--- a/src/Router.js
+++ b/src/Router.js
@@ -2,6 +2,7 @@ export default class Router {
static titleElement;
static contentElement;
static routes = [];
+ static #menuElement;
static navigate(path) {
const route = this.routes.find(route => route.path === path);
@@ -10,4 +11,21 @@ export default class Router {
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'));
+ });
+ }
+ }
}
diff --git a/src/main.js b/src/main.js
index 6148d2ba698b9b4314ca2f4afde288b429439f04..b5b8507cf16aaf1bc10e57544395262c50a433d5 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,13 +1,46 @@
import Router from './Router';
import data from './data';
import PizzaList from './pages/PizzaList';
+import Component from './components/Component.js';
Router.titleElement = document.querySelector('.pageTitle');
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([]);
-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;
Router.navigate('/'); // affiche la liste des pizzas
+
+Router.menuElement = document.querySelector('.mainMenu');