forked from crowetic/commerce
We're making some updates to Next.js Commerce. Everything prior to this commit marks what we're calling [`v1`](https://github.com/vercel/commerce/releases/tag/v1) as a point in time to be able to reference and still use going into the future. The current architecture of Commerce is a multi-vendor, interoperable solution, including:
- [Shopify](https://shopify.vercel.store/)
- [Swell](https://swell.vercel.store/)
- [BigCommerce](https://bigcommerce.vercel.store/)
- [Vendure](https://vendure.vercel.store/)
- [Saleor](https://saleor.vercel.store/)
- [Ordercloud](https://ordercloud.vercel.store/)
- [Spree](https://spree.vercel.store/)
- [Kibo Commerce](https://kibocommerce.vercel.store/)
- [Commerce.js](https://commercejs.vercel.store/)
- [SalesForce Cloud Commerce](https://salesforce-cloud-commerce.vercel.store/)
All features can be toggled on or off, and it's easy to change between commerce providers. To support this, we needed to create a ["commerce metaframework"](d1d9e8c434/packages/commerce/new-provider.md
) where providers could confirm to an API spec to add support for Next.js Commerce. While this worked and was successful for `v1`, we have different design goals and ambitions for `v2`.
**What You Need To Know**
- `v1` will not be updated moving forward. If you need to reference `v1`, you will still be able to clone and deploy the version tagged at this release.
- `v2` will be shifting to be a single provider vs. provider agnostic. Other providers are welcome to fork this repository and swap out the underlying `lib/` implementation that connects to the selected commerce provider (Shopify). This architecture was chosen to reduce the surface area of the codebase, remove the intermediate metaframework layer for provider-interoperability, and enable usage with the latest Next.js and React features.
- We will be sharing more about `v2` in the future as we continue to iterate before the marked release.
66 lines
2.6 KiB
TypeScript
66 lines
2.6 KiB
TypeScript
import Link from 'next/link';
|
|
|
|
import GitHubIcon from 'components/icons/github';
|
|
import LogoIcon from 'components/icons/logo';
|
|
import VercelIcon from 'components/icons/vercel';
|
|
import { SITE_NAME } from 'lib/constants';
|
|
import { getMenu } from 'lib/shopify';
|
|
import { Menu } from 'lib/shopify/types';
|
|
|
|
export default async function Footer() {
|
|
const menu = await getMenu('next-js-frontend-footer-menu');
|
|
|
|
return (
|
|
<footer className="border-t border-gray-700 bg-white text-black dark:bg-black dark:text-white">
|
|
<div className="mx-auto w-full max-w-7xl px-6">
|
|
<div className="grid grid-cols-1 gap-8 border-b border-gray-700 py-12 transition-colors duration-150 lg:grid-cols-12">
|
|
<div className="col-span-1 lg:col-span-3">
|
|
<a className="flex flex-initial items-center font-bold md:mr-24" href="/">
|
|
<span className="mr-2">
|
|
<LogoIcon className="h-8" />
|
|
</span>
|
|
<span>{SITE_NAME}</span>
|
|
</a>
|
|
</div>
|
|
{menu.length ? (
|
|
<nav className="col-span-1 lg:col-span-7">
|
|
<ul className="grid md:grid-flow-col md:grid-cols-3 md:grid-rows-4">
|
|
{menu.map((item: Menu) => (
|
|
<li key={item.title} className="py-3 md:py-0 md:pb-4">
|
|
<Link
|
|
href={item.path}
|
|
className="text-gray-800 transition duration-150 ease-in-out hover:text-gray-300 dark:text-gray-100"
|
|
>
|
|
{item.title}
|
|
</Link>
|
|
</li>
|
|
))}
|
|
</ul>
|
|
</nav>
|
|
) : null}
|
|
<div className="col-span-1 text-black dark:text-white lg:col-span-2">
|
|
<a aria-label="Github Repository" href="https://github.com/vercel/commerce">
|
|
<GitHubIcon className="h-6" />
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div className="flex flex-col items-center justify-between space-y-4 pt-6 pb-10 text-sm md:flex-row">
|
|
<p>© 2023 {SITE_NAME}. All rights reserved.</p>
|
|
<div className="flex items-center text-sm text-white dark:text-black">
|
|
<span className="text-black dark:text-white">Created by</span>
|
|
<a
|
|
rel="noopener noreferrer"
|
|
href="https://vercel.com"
|
|
aria-label="Vercel.com Link"
|
|
target="_blank"
|
|
className="text-black dark:text-white"
|
|
>
|
|
<VercelIcon className="ml-3 inline-block h-6" />
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
);
|
|
}
|