Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
game-article.js 3.05 KiB
Newer Older
  • Learn to ignore specific revisions
  • peter_rabbit's avatar
    peter_rabbit committed
    "use strict";
    
    const ImageCarousel = require("../../../generic-components/image-carousel");
    
    peter_rabbit's avatar
    peter_rabbit committed
    const { getArticleBody } = require("../../../lib/article-utils");
    
    peter_rabbit's avatar
    peter_rabbit committed
    
    class TeamMember {
        constructor(props) {
            this.props = props;
        }
    
        render() {
            const { title, subtitle, body, images, path } = this.props;
            return {
                tag: "div",
                class: "team-member",
                contents: [
                    {
                        tag: "div",
                        class: "team-member-img",
    
    peter_rabbit's avatar
    peter_rabbit committed
                        contents: [
                            {
                                tag: "img",
                                alt: `ìmage team member ${title}`,
                                src: images.map(im => `${path}/images/${im}`)[0],
                            },
                        ],
    
    peter_rabbit's avatar
    peter_rabbit committed
                    },
                    {
                        tag: "h3",
                        class: "team-member-title",
                        contents: title,
                    },
                    {
                        tag: "strong",
                        class: "team-member-subtitle",
                        contents: subtitle,
                    },
                    {
                        tag: "p",
                        class: "team-member-body",
                        contents: getArticleBody(body),
                    },
                ],
            };
        }
    }
    
    class GameArticle {
        constructor(props) {
            this.props = props;
        }
    
        render() {
    
    peter_rabbit's avatar
    peter_rabbit committed
            const { title, tags, body, subtitle, images, path, team_subarticles } = this.props;
    
    peter_rabbit's avatar
    peter_rabbit committed
            return {
                tag: "article",
                class: "game-article",
                contents: [
                    {
                        tag: "h2",
                        class: "game-title",
                        contents: title,
                    },
                    {
                        tag: "div",
    
    peter_rabbit's avatar
    peter_rabbit committed
                        class: "game-tags",
                        contents: tags.map(tag => {
                            return { tag: "span", contents: tag };
                        }),
    
    peter_rabbit's avatar
    peter_rabbit committed
                    },
                    {
                        tag: "h3",
                        class: "game-subtitle",
                        contents: subtitle,
                    },
                    {
                        tag: "div",
                        class: "game-description",
                        contents: getArticleBody(body),
                    },
                    new ImageCarousel({ images: images.map(img => `${path}/images/${img}`) }).render(),
                    {
                        tag: "div",
                        class: "game-team",
                        contents: [
                            {
                                tag: "h2",
                                contents: "L'équipe",
                            },
                            {
                                tag: "div",
                                class: "team-members",
                                contents: team_subarticles.map(tsa =>
                                    new TeamMember({ ...tsa }).render()
                                ),
                            },
                        ],
                    },
                ],
            };
        }
    }
    
    module.exports = GameArticle;