@etsoo/website
Version:
ETSOO CMS Based NextJs Website Framework
38 lines (37 loc) • 2.47 kB
JavaScript
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)
})] })] }));
}