import { FC } from 'react' import cn from 'classnames' import Link from 'next/link' import { useRouter } from 'next/router' import type { Page } from '@bigcommerce/storefront-data-hooks/api/operations/get-all-pages' import getSlug from '@lib/get-slug' import { Github } from '@components/icons' import { Logo, Container } from '@components/ui' import { I18nWidget } from '@components/core' import s from './Footer.module.css' interface Props { className?: string children?: any pages?: Page[] } const LEGAL_PAGES = ['terms-of-use', 'shipping-returns', 'privacy-policy'] const Footer: FC = ({ className, pages }) => { const { sitePages, legalPages } = usePages(pages) const rootClassName = cn(className) return ( ) } function usePages(pages?: Page[]) { const { locale } = useRouter() const sitePages: Page[] = [] const legalPages: Page[] = [] if (pages) { pages.forEach((page) => { const slug = page.url && getSlug(page.url) if (!slug) return if (locale && !slug.startsWith(`${locale}/`)) return if (isLegalPage(slug, locale)) { legalPages.push(page) } else { sitePages.push(page) } }) } return { sitePages: sitePages.sort(bySortOrder), legalPages: legalPages.sort(bySortOrder), } } const isLegalPage = (slug: string, locale?: string) => locale ? LEGAL_PAGES.some((p) => `${locale}/${p}` === slug) : LEGAL_PAGES.includes(slug) // Sort pages by the sort order assigned in the BC dashboard function bySortOrder(a: Page, b: Page) { return (a.sort_order ?? 0) - (b.sort_order ?? 0) } export default Footer