"use strict"; const { images_url } = require("../../../../../admin-frontend/src/constants"); const ImageCarousel = require("../../../generic-components/image-carousel"); const { getArticleBody } = require("../../../lib/article-utils"); class GameArticle { constructor(props) { this.props = props; } render() { const { title, subtitle, body, images, details, } = this.props; return { tag: "article", typeof: "VideoGame", additionalType: "Article", class: "game-article", contents: [ { tag: "h2", property: "name", class: "game-title", contents: title, }, { tag: "div", class: "game-banner", contents: [ { tag: "img", class: "pixelated", src: `${images_url}/${images[0]}` }, ], }, { tag: "h3", class: "game-subtitle", contents: subtitle, property: "alternativeHeadline", }, { tag: "div", class: "game-description", property: "description", contents: getArticleBody(body), }, new ImageCarousel({ images: images.map(img => `${images_url}/${img}`) }).render(), details.length > 0 && { tag: "div", class: "article-details", contents: [ { tag: "h2", contents: "Details", }, { tag: "ul", class: "details-list", contents: details.map(detail => { return { tag: "li", class: "detail", contents: [ { tag: "label", contents: detail.label }, { tag: "div", contents: detail.value }, ], }; }), }, ], }, ], }; } } module.exports = GameArticle;