From 10d3a84bd5826bc3ac2d7fca8fb9bee66c678811 Mon Sep 17 00:00:00 2001
From: Maxime Wallart <maxime.wallart.etu@univ-lille.fr>
Date: Mon, 8 Feb 2021 17:31:35 +0100
Subject: [PATCH] D3.4

---
 src/Router.js          | 11 +++++------
 src/main.js            |  6 +++---
 src/pages/Page.js      | 12 ++++++++++++
 src/pages/PizzaForm.js | 23 +++++++++++++++++++++++
 src/pages/PizzaList.js |  6 +++---
 5 files changed, 46 insertions(+), 12 deletions(-)
 create mode 100644 src/pages/Page.js
 create mode 100644 src/pages/PizzaForm.js

diff --git a/src/Router.js b/src/Router.js
index 03a6af2..98d928d 100644
--- a/src/Router.js
+++ b/src/Router.js
@@ -8,18 +8,17 @@ export default class Router {
 		if (route) {
 			this.titleElement.innerHTML = `<h1>${route.title}</h1>`;
 			this.contentElement.innerHTML = route.page.render();
+			route.page.mount?.(this.contentElement);
 		}
 	}
 	static #menuElement;
 	static set menuElement(element) {
 		this.#menuElement = element;
 		function redirect(event) {
-			event.currentTarget.navigate(menuElement.getAttribute('href'));
-			console.log(event.currentTarget.getAttribute('href'))
-		}
-		var liens = menuElement.getAttribute('a');
-		for(var i=0;i<liens.length; i++) {
-			liens[i].addEventListener('click',redirect);
+			this.navigate(event.currentTarget.getAttribute('href'));
+			console.log(event.currentTarget.getAttribute('href'));
 		}
+		this.#menuElement.addEventListener('click',redirect);
 	}
+	
 }
diff --git a/src/main.js b/src/main.js
index 4ec3f2e..5807d0b 100644
--- a/src/main.js
+++ b/src/main.js
@@ -19,9 +19,9 @@ function fermer(event) {
 const close = document.querySelector('.closeButton');
 close.addEventListener('click', fermer);
 
-pizzaList = new PizzaList([]),
-	aboutPage = new Component('section', null, 'Ce site est génial'),
-	pizzaForm = new Component('section', null, 'Ici vous pourrez ajouter une pizza');
+const pizzaList = new PizzaList([]),
+	aboutPage = new Component('p', null, 'ce site est génial'),
+	pizzaForm = new PizzaForm();
 
 Router.routes = [
     { path: '/', page: pizzaList, title: 'La carte' },
diff --git a/src/pages/Page.js b/src/pages/Page.js
new file mode 100644
index 0000000..8ccf3ed
--- /dev/null
+++ b/src/pages/Page.js
@@ -0,0 +1,12 @@
+import Component from '../components/Component';
+
+export default class Page extends Component {
+	element;
+
+	constructor(className, children) {
+		super('section', { name: 'class', value: className }, children);
+	}
+	mount(element) {
+		this.element = element;
+	}
+}
diff --git a/src/pages/PizzaForm.js b/src/pages/PizzaForm.js
new file mode 100644
index 0000000..3c55ca4
--- /dev/null
+++ b/src/pages/PizzaForm.js
@@ -0,0 +1,23 @@
+import Page from './Page.js';
+
+export default class AddPizzaPage extends Page {
+	render() {
+		return /*html*/ `
+			<form class="pizzaForm">
+				<label>
+					Nom :
+					<input type="text" name="name">
+				</label>
+				<button type="submit">Ajouter</button>
+			</form>`;
+	}
+
+	mount(element) {
+        super.mount(element);
+        document.querySelector('button').addEventListener('click',submit());
+	}
+
+	submit(event) {
+        console.log(document.querySelector('input').getAttribute('name'));
+    }
+}
diff --git a/src/pages/PizzaList.js b/src/pages/PizzaList.js
index fcaedaf..fe63760 100644
--- a/src/pages/PizzaList.js
+++ b/src/pages/PizzaList.js
@@ -1,11 +1,11 @@
-import Component from '../components/Component.js';
 import PizzaThumbnail from '../components/PizzaThumbnail.js';
+import Page from './Page';
 
-export default class PizzaList extends Component {
+export default class PizzaList extends Page {
 	#pizzas;
 
 	constructor(pizzas) {
-		super('section', { name: 'class', value: 'pizzaList' });
+		super('pizzaList');
 		this.pizzas = pizzas;
 	}
 
-- 
GitLab