diff --git a/src/frontend/components/cms/image/media/ImageMediaData/ImageMediaData.tsx b/src/frontend/components/cms/image/media/ImageMediaData/ImageMediaData.tsx index 5ec72931..05ee4d70 100644 --- a/src/frontend/components/cms/image/media/ImageMediaData/ImageMediaData.tsx +++ b/src/frontend/components/cms/image/media/ImageMediaData/ImageMediaData.tsx @@ -17,7 +17,7 @@ export const ImageMediaDataComponent : IContentComponent = props if (!imageUrl || imageUrl == "") return <> - return {altText} + return {altText} } ImageMediaDataComponent.displayName = "Image from CMS" diff --git a/src/frontend/components/cms/page/BlogListPage/index.tsx b/src/frontend/components/cms/page/BlogListPage/index.tsx index faef601e..aeeca4fa 100644 --- a/src/frontend/components/cms/page/BlogListPage/index.tsx +++ b/src/frontend/components/cms/page/BlogListPage/index.tsx @@ -35,6 +35,8 @@ import ExpandMoreIcon from '@mui/icons-material/ExpandMore' import NavigateNextIcon from '@mui/icons-material/NavigateNext' import { useTheme } from '@mui/material/styles' import useMediaQuery from '@mui/material/useMediaQuery' +import StructuredHtml from '@framework/foundation/cms/structuredhtml' + function isBlogPost(content: IContent) : content is BlogItemPage { @@ -90,7 +92,9 @@ export const Component : IContentComponent = ({ content, locale }) {metaTitle} { title } - + + + diff --git a/src/frontend/components/cms/page/ThreeColumnLandingPage/index.tsx b/src/frontend/components/cms/page/ThreeColumnLandingPage/index.tsx new file mode 100644 index 00000000..b88314e8 --- /dev/null +++ b/src/frontend/components/cms/page/ThreeColumnLandingPage/index.tsx @@ -0,0 +1,56 @@ +import type { IContentComponent } from '@optimizely/cms/models' +import { readValue as pv, prefetchContentAreaRecursive } from '@optimizely/cms/utils' +import { ThreeColumnLandingPage } from 'schema' +import { ContentArea } from '@components/shared/Utils' +import Head from 'next/head' +import React from 'react' +import Box from '@mui/material/Box' +import Grid from '@mui/material/Grid'; +import { EditableField } from '@optimizely/cms/components' +import StructuredHtml from '@framework/foundation/cms/structuredhtml' +import site from 'website.cjs' + +export const ThreeColumnLandingPageComponent : IContentComponent = props => +{ + const pageTitle = `${ pv(props.content, "name") ?? "ThreeColumnLandingPage Page" } :: ${ site.name }` + + let leftCol = pv(props.content, "leftColumn") ?? 4 + let centerCol = pv(props.content, "centerColumn") ?? 4 + let rightCol = pv(props.content, "rightColumn") ?? 4 + + + return <> + + { pageTitle } + + + + + + + + + + + + + + + + + + + + + +} + +ThreeColumnLandingPageComponent.getStaticProps = async (content, { locale, inEditMode, api, loader }) => { + return { + fallback: await prefetchContentAreaRecursive(content, [{ name: "mainContentArea" },{ name: "topContentArea" },{ name: "rightContentArea" },{ name: "leftContentArea" }], locale, inEditMode == true, undefined, api, loader) + } +} + +ThreeColumnLandingPageComponent.displayName = "Three Column Landing Page" + +export default ThreeColumnLandingPageComponent \ No newline at end of file diff --git a/src/frontend/components/cms/page/TwoColumnLandingPage/index.tsx b/src/frontend/components/cms/page/TwoColumnLandingPage/index.tsx new file mode 100644 index 00000000..d7988dca --- /dev/null +++ b/src/frontend/components/cms/page/TwoColumnLandingPage/index.tsx @@ -0,0 +1,52 @@ +import type { IContentComponent } from '@optimizely/cms/models' +import { readValue as pv, prefetchContentAreaRecursive } from '@optimizely/cms/utils' +import { TwoColumnLandingPage } from 'schema' +import { ContentArea } from '@components/shared/Utils' +import Head from 'next/head' +import React from 'react' +import Box from '@mui/material/Box' +import Grid from '@mui/material/Grid'; +import { EditableField } from '@optimizely/cms/components' +import StructuredHtml from '@framework/foundation/cms/structuredhtml' +import site from 'website.cjs' + +export const TwoColumnLandingPageComponent : IContentComponent = props => +{ + const pageTitle = `${ pv(props.content, "name") ?? "TwoColumnLandingPage Page" } :: ${ site.name }` + + let leftCol = pv(props.content, "leftColumn") ?? 6 + let rightCol = pv(props.content, "rightColumn") ?? 6 + + + return <> + + { pageTitle } + + + + + + + + + + + + + + + + + + +} + +TwoColumnLandingPageComponent.getStaticProps = async (content, { locale, inEditMode, api, loader }) => { + return { + fallback: await prefetchContentAreaRecursive(content, [{ name: "mainContentArea" },{ name: "topContentArea" },{ name: "rightContentArea" }], locale, inEditMode == true, undefined, api, loader) + } +} + +TwoColumnLandingPageComponent.displayName = "Two Column Landing Page" + +export default TwoColumnLandingPageComponent \ No newline at end of file diff --git a/src/frontend/components/cms/page/index.ts b/src/frontend/components/cms/page/index.ts index ac33e1f8..c30a2ace 100644 --- a/src/frontend/components/cms/page/index.ts +++ b/src/frontend/components/cms/page/index.ts @@ -7,6 +7,8 @@ export const CmsPageComponents : Record = { "page/FolderPage": dynamic(() => import("./FolderPage"), { ssr: true }), "page/HomePage": dynamic(() => import("./HomePage"), { ssr: true }), "page/LandingPage": dynamic(() => import("./LandingPage"), { ssr: true }), + "page/TwoColumnLandingPage":dynamic(() => import("./TwoColumnLandingPage"), { ssr: true }), + "page/ThreeColumnLandingPage":dynamic(() => import("./ThreeColumnLandingPage"), { ssr: true }), "page/LocationItemPage": dynamic(() => import("./LocationItemPage"), { ssr: true }), "page/LocationListPage": dynamic(() => import("./LocationListPage"), { ssr: true }), "page/StandardPage": dynamic(() => import("./StandardPage"), { ssr: true }), diff --git a/src/frontend/public/favicon.ico b/src/frontend/public/favicon.ico index 718d6fea..1a7e3b79 100644 Binary files a/src/frontend/public/favicon.ico and b/src/frontend/public/favicon.ico differ