From 24677fb1cfd79cefd12122d35364d22dfe36b90e Mon Sep 17 00:00:00 2001
From: Victor Mougel <victor.mougel.etu@univ-lille.fr>
Date: Thu, 10 Feb 2022 20:21:24 +0100
Subject: [PATCH] single

---
 src/Router.js | 25 +++++++++++++++++++++++++
 src/main.js   | 17 +++++++++++++++--
 2 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/src/Router.js b/src/Router.js
index fe89f10..493ba4a 100644
--- a/src/Router.js
+++ b/src/Router.js
@@ -20,4 +20,29 @@ export default class Router {
 			this.contentElement.innerHTML = route.page.render();
 		}
 	}
+
+	static #menuElement; // propriété statique privée
+	/**
+	 * Indique au Router la balise HTML contenant le menu de navigation
+	 * Écoute le clic sur chaque lien et déclenche la méthode navigate
+	 * @param element Élément HTML qui contient le menu principal
+	 */
+	static set menuElement(element) {
+		// setter
+		this.#menuElement = element;
+		const arr = this.#menuElement.querySelectorAll('li>a');
+		arr.forEach(element => {
+			element.addEventListener('click', event => {
+				event.preventDefault();
+				Router.navigate(element.getAttribute('href'));
+			});
+		});
+		// value.addEventListener('click', event => {
+		// 	Router.navigate(value.getAttribute('href'));
+		// });
+
+		// au clic sur n'importe quel lien (<a href>) contenu dans "element"
+		// déclenchez un appel à Router.navigate(path)
+		// où "path" est la valeur de l'attribut `href=".."` du lien cliqué
+	}
 }
diff --git a/src/main.js b/src/main.js
index 903db63..4b3adc0 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,12 +1,25 @@
 import Router from './Router';
 import data from './data';
 import PizzaList from './pages/PizzaList';
+import Component from './components/Component';
 
 Router.titleElement = document.querySelector('.pageTitle');
 Router.contentElement = document.querySelector('.pageContent');
 
-const pizzaList = new PizzaList([]);
-Router.routes = [{ path: '/', page: pizzaList, title: 'La carte' }];
+const pizzaList = new PizzaList(data),
+	aboutPage = new Component('section', null, 'Ce site est génial'),
+	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.menuElement = document.querySelector('.mainMenu');
 
 document.querySelector('.logo').innerHTML +=
 	"<small>les pizzas c'est la vie</small>";
-- 
GitLab