import { Menu, Page } from './types'; /** * NOTE: This function returns a hardcoded menu structure for demonstration purposes. * In a production application, the engineering team should update to retrieve menu content from * a CMS or other data source that is appropriate for the project. */ export function getMenu(handle: string): Menu[] { return getMenus().filter((menu) => menu.handle === handle)[0]?.links || []; } /** * NOTE: This function currently returns a hardcoded menu structure for demonstration purposes. * This should be replaced in a fetch to a CMS or other data source that is appropriate for the project. */ export function getMenus() { return [ { handle: 'next-js-frontend-footer-menu', links: [ { title: 'Home', path: '/' }, { title: 'About', path: '/about' }, { title: 'Terms & Conditions', path: '/terms-conditions' }, { title: 'Shipping & Return Policy', path: '/shipping-return-policy' }, { title: 'Privacy Policy', path: '/privacy-policy' }, { title: 'FAQ', path: '/freqently-asked-questions' } ] }, { handle: 'next-js-frontend-header-menu', links: [ { title: 'New Arrivals', path: '/search/newarrivals' }, { title: 'Women', path: '/search/womens' }, { title: 'Men', path: '/search/mens' } ] } ]; } /** * NOTE: This function currently returns a hardcoded page for demonstration purposes. * This should be replaced in a fetch to a CMS or other data source that is appropriate for the project. */ export function getPage(handle: string): Page | undefined { return getPages().find((page) => page.handle === handle); } /** * NOTE: This function currently returns hardcoded pages for demonstration purposes. * This should be replaced in a fetch to a CMS or other data source that is appropriate for the project. */ export function getPages(): Page[] { return [homePage, aboutPage, termsPage, shippingPage, privacyPage, faqPage]; } /* * For demonstration purposes, we've opted to hardcode the content for several pages in this project. * In a real-world scenario, this content would typically be managed through a CMS to allow for * easier updates and content management by non-developers. This hardcoding approach simplifies * the setup for now but would be replaced with a CMS in a production environment. */ const homePage = { id: 'home', title: 'Acme Store', handle: '', body: ``, bodySummary: 'High-performance ecommerce store built with Next.js, Vercel, and Salesforce Commerce Cloud.', seo: { title: 'Acme Store', description: 'High-performance ecommerce store built with Next.js, Vercel, and Salesforce Commerce Cloud.' }, createdAt: '2024-09-20T20:15:06Z', updatedAt: '2024-09-20T20:15:06Z' }; const aboutPage = { id: 'about', title: 'About', handle: 'about', body: `

This website is built with Next.js Commerce, which is a ecommerce template for creating a headless Salesforce Commerce Cloud storefront.

Support for real-world commerce features including:

This template also allows us to highlight newer Next.js features including:

`, bodySummary: 'This website is built with Next.js, Vercel, and Salesforce Commerce Cloud.', seo: { title: 'About', description: 'This website is built with Next.js, Vercel, and Salesforce Commerce Cloud.' }, createdAt: '2024-09-20T20:15:06Z', updatedAt: '2024-09-20T20:15:06Z' }; const termsPage = { id: 'terms', title: 'Terms & Conditions', handle: 'terms-conditions', body: `
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nam libero justo laoreet sit amet cursus sit. Dictumst quisque sagittis purus sit amet volutpat consequat. Egestas diam in arcu cursus euismod. Sed faucibus turpis in eu mi bibendum. Consectetur libero id faucibus nisl. Quisque id diam vel quam elementum. Eros donec ac odio tempor orci dapibus ultrices. Turpis tincidunt id aliquet risus. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio.
`, bodySummary: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', seo: { title: 'Terms & Conditions', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' }, createdAt: '2024-09-20T20:15:06Z', updatedAt: '2024-09-20T20:15:06Z' }; const shippingPage = { id: 'shipping', title: 'Shipping & Return Policy', handle: 'shipping-return-policy', body: `
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nam libero justo laoreet sit amet cursus sit. Dictumst quisque sagittis purus sit amet volutpat consequat. Egestas diam in arcu cursus euismod. Sed faucibus turpis in eu mi bibendum. Consectetur libero id faucibus nisl. Quisque id diam vel quam elementum. Eros donec ac odio tempor orci dapibus ultrices. Turpis tincidunt id aliquet risus. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio.
`, bodySummary: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', seo: { title: 'Shipping & Return Policy', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' }, createdAt: '2024-09-20T20:15:06Z', updatedAt: '2024-09-20T20:15:06Z' }; const privacyPage = { id: 'privacy', title: 'Privacy Policy', handle: 'privacy-policy', body: `
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nam libero justo laoreet sit amet cursus sit. Dictumst quisque sagittis purus sit amet volutpat consequat. Egestas diam in arcu cursus euismod. Sed faucibus turpis in eu mi bibendum. Consectetur libero id faucibus nisl. Quisque id diam vel quam elementum. Eros donec ac odio tempor orci dapibus ultrices. Turpis tincidunt id aliquet risus. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio.
`, bodySummary: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', seo: { title: 'Privacy Policy', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' }, createdAt: '2024-09-20T20:15:06Z', updatedAt: '2024-09-20T20:15:06Z' }; const faqPage = { id: 'faq', title: 'Frequently Asked Questions', handle: 'freqently-asked-questions', body: `
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nam libero justo laoreet sit amet cursus sit. Dictumst quisque sagittis purus sit amet volutpat consequat. Egestas diam in arcu cursus euismod. Sed faucibus turpis in eu mi bibendum. Consectetur libero id faucibus nisl. Quisque id diam vel quam elementum. Eros donec ac odio tempor orci dapibus ultrices. Turpis tincidunt id aliquet risus. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio.
`, bodySummary: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', seo: { title: 'Frequently Asked Questions', description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' }, createdAt: '2024-09-20T20:15:06Z', updatedAt: '2024-09-20T20:15:06Z' };