UNPKG

@etsoo/website

Version:

ETSOO CMS Based NextJs Website Framework

38 lines (37 loc) 2.47 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import Head from 'next/head'; import React from 'react'; import { CommonPhotosRenderer } from './CommonPhotosRenderer'; import { CommonPageClassNames, CommonPageTitleRenderer } from './CommonTabPage'; import { SiteUtils } from '../site/SiteUtils'; import { HtmlContent } from './HtmlContent'; /** * Common article page * @param props Props * @returns Component */ export function CommonArticlePage(props) { // Destruct const { siteData, tab, article, articleClassName = CommonPageClassNames.articleClassName, articleTitleClassName = CommonPageClassNames.articleTitleClassName, articleContentClassName = CommonPageClassNames.articleContentClassName, photosRenderer = CommonPhotosRenderer, titleRightRenderer, titleRenderer = CommonPageTitleRenderer, contentRenderer = ({ article, articleContentClassName }) => { const content = article.content; return (!SiteUtils.checkNoContent(content) && (_jsxs(React.Fragment, { children: [article.logo && (_jsx("img", { src: article.logo, className: "article-logo float-sm-start img-fluid" })), _jsx(HtmlContent, { className: articleContentClassName, innerHTML: content })] }))); }, isTab } = props; const description = article.description; const keywords = article.keywords; return (_jsxs(React.Fragment, { children: [_jsxs(Head, { children: [_jsx("title", { children: `${siteData.site.title} - ${article.title}` }), description && (_jsx("meta", { name: "description", content: `${siteData.site.description} - ${description}` })), keywords && (_jsx("meta", { name: "keywords", content: `${siteData.site.keywords}, ${keywords}` })), article.logo && (_jsx("meta", { property: "og:image", content: article.logo }))] }, `article-${article.id}`), _jsxs("article", { className: articleClassName, children: [titleRenderer({ siteData, tab, article, articleTitleClassName, titleRightRenderer, isTab }), contentRenderer({ siteData, tab, article, articleContentClassName }), photosRenderer({ photos: article.photos, noContent: SiteUtils.checkNoContent(article.content) })] })] })); }