mirror of
https://github.com/vercel/commerce.git
synced 2025-07-27 04:01:23 +00:00
updates
This commit is contained in:
@@ -1,21 +1,49 @@
|
||||
import pageTemplates from "components/agility-pageTemplates"
|
||||
import Head from 'next/head'
|
||||
|
||||
const AgilityPage = ({ agilityProps, error, revalidate }: { agilityProps: any, error?: any, revalidate?: any}) => {
|
||||
const AgilityPage = ({ agilityProps, error, revalidate }: { agilityProps: any, error?: any, revalidate?: any }) => {
|
||||
|
||||
if (!agilityProps) {
|
||||
console.error(`Page object or template was not found.`)
|
||||
return null
|
||||
}
|
||||
|
||||
let AgilityPageTemplate = pageTemplates(agilityProps.pageTemplateName)
|
||||
if (! AgilityPageTemplate) {
|
||||
console.error(`${agilityProps.pageTemplateName} not found.`)
|
||||
return null
|
||||
let pageTitle = "Commerce Storefront"
|
||||
|
||||
if (agilityProps.globalData?.sitedata) {
|
||||
pageTitle = agilityProps.globalData?.sitedata.name
|
||||
}
|
||||
|
||||
return (
|
||||
<AgilityPageTemplate {...agilityProps} />
|
||||
)
|
||||
if (agilityProps.notFound === true) {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>Page Not Found - {pageTitle}</title>
|
||||
</Head>
|
||||
<div className="m-8 text-center" >Page not found.</div>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
if (agilityProps.pageTemplateName) {
|
||||
|
||||
let AgilityPageTemplate = pageTemplates(agilityProps.pageTemplateName)
|
||||
if (!AgilityPageTemplate) {
|
||||
console.error(`${agilityProps.pageTemplateName} not found.`)
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
<title>{agilityProps.sitemapNode?.title} - {pageTitle}</title>
|
||||
</Head>
|
||||
<AgilityPageTemplate {...agilityProps} />
|
||||
</>
|
||||
)
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -1,75 +0,0 @@
|
||||
import React, { Component, useState } from 'react';
|
||||
import Link from 'next/link';
|
||||
|
||||
import {expandLinkedList} from "@agility/utils"
|
||||
|
||||
const GlobalFooter = (props) => {
|
||||
const { globalFooterProps } = props;
|
||||
|
||||
return (
|
||||
<div>FOOTER</div>
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
GlobalFooter.getCustomInitialProps = async function ({agility, languageCode, channelName}) {
|
||||
|
||||
const api = agility;
|
||||
|
||||
let contentItem = null;
|
||||
|
||||
//hack
|
||||
return {}
|
||||
|
||||
try {
|
||||
//get the global footer
|
||||
let contentItemList = await api.getContentList({
|
||||
referenceName: "globalfooter",
|
||||
languageCode: languageCode
|
||||
});
|
||||
|
||||
if (contentItemList?.length > 0) {
|
||||
contentItem = contentItemList[0];
|
||||
|
||||
//resolve the links...
|
||||
contentItem = await expandLinkedList({ agility, contentItem, languageCode,
|
||||
fieldName: "column2Links",
|
||||
sortIDField: "column2SortIDs"
|
||||
})
|
||||
|
||||
contentItem = await expandLinkedList({ agility, contentItem, languageCode,
|
||||
fieldName: "column3Links",
|
||||
sortIDField: "column3SortIDs"
|
||||
})
|
||||
|
||||
contentItem = await expandLinkedList({ agility, contentItem, languageCode,
|
||||
fieldName: "column4Links",
|
||||
sortIDField: "column4SortIDs"
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
} catch (error) {
|
||||
if (console) console.error("Could not load global footer item.", error);
|
||||
}
|
||||
|
||||
//return a clean object...
|
||||
return {
|
||||
siteName: contentItem.fields.siteName,
|
||||
siteDescription: contentItem.fields.siteDescription,
|
||||
column2Title: contentItem.fields.column2Title,
|
||||
column3Title: contentItem.fields.column3Title,
|
||||
column4Title: contentItem.fields.column4Title,
|
||||
facebookURL: contentItem.fields.facebookURL,
|
||||
twitterURL: contentItem.fields.twitterURL,
|
||||
youTubeURL: contentItem.fields.youTubeURL,
|
||||
column2Links: contentItem.fields.column2Links.map(link => link.fields.link),
|
||||
column3Links: contentItem.fields.column3Links.map(link => link.fields.link),
|
||||
column4Links: contentItem.fields.column4Links.map(link => link.fields.link),
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export default GlobalFooter
|
@@ -1,73 +0,0 @@
|
||||
import React, { Component, useState } from 'react';
|
||||
import Link from 'next/link';
|
||||
|
||||
|
||||
const GlobalHeader = (props) => {
|
||||
const { globalHeaderProps, sitemapNode, page } = props;
|
||||
|
||||
const globalHeaderItem = globalHeaderProps.contentItem;
|
||||
let siteName = globalHeaderItem?.fields.siteName || "Agility Starter 2020"
|
||||
let logo = globalHeaderItem?.fields.logo || nulll
|
||||
|
||||
return (
|
||||
<div>HEADER</div>
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
GlobalHeader.getCustomInitialProps = async function (props) {
|
||||
|
||||
const api = props.agility;
|
||||
const languageCode = props.languageCode;
|
||||
const channelName = props.channelName;
|
||||
let contentItem = null;
|
||||
let links = [];
|
||||
|
||||
//hack
|
||||
return {}
|
||||
|
||||
try {
|
||||
//get the global header
|
||||
let contentItemList = await api.getContentList({
|
||||
referenceName: "globalheader",
|
||||
languageCode: languageCode
|
||||
});
|
||||
|
||||
if (contentItemList && contentItemList.length) {
|
||||
contentItem = contentItemList[0];
|
||||
|
||||
}
|
||||
} catch (error) {
|
||||
if (console) console.error("Could not load global header item.", error);
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
//get the nested sitemap
|
||||
let sitemap = await api.getSitemapNested({
|
||||
channelName: channelName,
|
||||
languageCode: languageCode,
|
||||
});
|
||||
|
||||
//grab the top level links that are visible on menu
|
||||
links = sitemap
|
||||
.filter(node => node.visible.menu)
|
||||
.map(node => {
|
||||
return {
|
||||
text: node.menuText || node.title,
|
||||
path: node.path
|
||||
}
|
||||
})
|
||||
|
||||
} catch (error) {
|
||||
if (console) console.error("Could not load nested sitemap.", error);
|
||||
}
|
||||
|
||||
return {
|
||||
contentItem,
|
||||
links
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export default GlobalHeader
|
Reference in New Issue
Block a user