diff --git a/js/PageRenderer.js b/js/PageRenderer.js new file mode 100644 index 0000000000000000000000000000000000000000..4b3f572aa8cce761f36c1bf8adb43389b5e49189 --- /dev/null +++ b/js/PageRenderer.js @@ -0,0 +1,13 @@ +export default class PageRenderer { + static titleElement; + static contentElement; + + static renderPage(page) { + if (this.titleElement) { + this.titleElement.innerHTML = page.renderTitle(); + } + if (this.contentElement) { + this.contentElement.innerHTML = page.render(); + } + } +} diff --git a/js/main.js b/js/main.js index 5222ee0bde34626a0a45abd1a2663eb0f8dbe9aa..a44ba05e43311271efe65c978db1edca58abeabe 100644 --- a/js/main.js +++ b/js/main.js @@ -1,9 +1,10 @@ import data from './data.js'; import Component from './components/Component.js'; import HomePage from './pages/HomePage.js'; - -const title = new Component('h1', null, ['La', ' ', 'carte']); -document.querySelector('.pageTitle').innerHTML = title.render(); +import PageRenderer from './PageRenderer.js'; const homePage = new HomePage(data); -document.querySelector('.pizzasContainer').innerHTML = homePage.render(); + +PageRenderer.titleElement = document.querySelector('.pageTitle'); +PageRenderer.contentElement = document.querySelector('.pizzasContainer'); +PageRenderer.renderPage(homePage); diff --git a/js/pages/HomePage.js b/js/pages/HomePage.js index 6a1f3b58494f156915e2785368797dc811b3ff7b..1f31b9531b69fec6c2bf165c07a3e2248272ba97 100644 --- a/js/pages/HomePage.js +++ b/js/pages/HomePage.js @@ -1,11 +1,10 @@ -import Component from '../components/Component.js'; +import Page from './Page.js'; import PizzaThumbnail from '../components/PizzaThumbnail.js'; -export default class HomePage extends Component { +export default class HomePage extends Page { constructor(pizzas) { super( - 'section', - null, + 'La carte', pizzas.map(pizza => new PizzaThumbnail(pizza)) ); } diff --git a/js/pages/Page.js b/js/pages/Page.js new file mode 100644 index 0000000000000000000000000000000000000000..cab885d19db828980aafa3a19ebc77b4c7479762 --- /dev/null +++ b/js/pages/Page.js @@ -0,0 +1,14 @@ +import Component from '../components/Component'; + +export default class Page extends Component { + title = ''; + + constructor(title, children) { + super('section', null, children); + this.title = title; + } + + renderTitle() { + return `<h1>${this.title}</h1>`; + } +}