From bf11b07a39f5e9dd1fa637115e1d317d95b12ae0 Mon Sep 17 00:00:00 2001 From: Thomas Fritsch <thomas@uidlt.fr> Date: Mon, 7 Feb 2022 01:40:06 +0100 Subject: [PATCH] ajout commentaires et jsdoc --- src/Router.js | 10 ++++++++++ src/main.js | 2 +- src/pages/PizzaList.js | 8 +++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Router.js b/src/Router.js index 7aef071..fe89f10 100644 --- a/src/Router.js +++ b/src/Router.js @@ -1,12 +1,22 @@ export default class Router { static titleElement; static contentElement; + /** + * Tableau des routes/pages de l'application. + * @example `Router.routes = [{ path: '/', page: pizzaList, title: 'La carte' }]` + */ static routes = []; + /** + * Affiche la page correspondant à `path` dans le tableau `routes` + * @param {String} path URL de la page à afficher + */ static navigate(path) { const route = this.routes.find(route => route.path === path); if (route) { + // affichage du titre de la page this.titleElement.innerHTML = `<h1>${route.title}</h1>`; + // affichage de la page elle même this.contentElement.innerHTML = route.page.render(); } } diff --git a/src/main.js b/src/main.js index 6148d2b..97abcfd 100644 --- a/src/main.js +++ b/src/main.js @@ -9,5 +9,5 @@ const pizzaList = new PizzaList([]); Router.routes = [{ path: '/', page: pizzaList, title: 'La carte' }]; Router.navigate('/'); // affiche une page vide -pizzaList.pizzas = data; +pizzaList.pizzas = data; // appel du setter Router.navigate('/'); // affiche la liste des pizzas diff --git a/src/pages/PizzaList.js b/src/pages/PizzaList.js index fcaedaf..c76b6e6 100644 --- a/src/pages/PizzaList.js +++ b/src/pages/PizzaList.js @@ -2,13 +2,19 @@ import Component from '../components/Component.js'; import PizzaThumbnail from '../components/PizzaThumbnail.js'; export default class PizzaList extends Component { - #pizzas; + #pizzas; // propriété privée constructor(pizzas) { super('section', { name: 'class', value: 'pizzaList' }); this.pizzas = pizzas; } + /** + * setter de la liste des pizzas. + * Génère autant de composants `PizzaThumbnail` que de pizzas dans le tableau + * et les stocke dans `this.children` + * @param {Array} value Tableau d'objets pizza à afficher + */ set pizzas(value) { this.#pizzas = value; this.children = this.#pizzas.map(pizza => new PizzaThumbnail(pizza)); -- GitLab