feat: initial commit — storefront, convex backend, and shared packages
Completes the first milestone of The Pet Loft ecommerce platform: - apps/storefront: full customer-facing Next.js app with HeroUI (cart, checkout, orders, wishlist, product detail, shop, search, auth) - convex/: serverless backend with schema, queries, mutations, actions, HTTP routes, Stripe/Shippo integrations, and co-located tests - packages/types, packages/utils, packages/convex: shared workspace packages Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
25
apps/storefront/src/app/shop/not-found.tsx
Normal file
25
apps/storefront/src/app/shop/not-found.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
import Link from "next/link";
|
||||
|
||||
/**
|
||||
* Shop-specific 404 when an invalid category or sub-category path is requested
|
||||
* (e.g. unknown [category] or [subCategory] in /shop/[category]/[subCategory]).
|
||||
*/
|
||||
export default function ShopNotFound() {
|
||||
return (
|
||||
<div className="mx-auto max-w-2xl px-4 py-16 text-center">
|
||||
<h1 className="font-[family-name:var(--font-fraunces)] text-2xl font-bold text-[var(--foreground)] md:text-3xl">
|
||||
Page not found
|
||||
</h1>
|
||||
<p className="mt-3 text-[var(--muted)]">
|
||||
This shop category or page doesn't exist. Try browsing from the
|
||||
shop home.
|
||||
</p>
|
||||
<Link
|
||||
href="/shop"
|
||||
className="mt-6 inline-block rounded-lg bg-[var(--brand-dark)] px-6 py-3 text-sm font-medium text-white transition-colors hover:bg-[var(--brand-hover)]"
|
||||
>
|
||||
Back to Shop
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user