From 8a1475f34188fc891c5c359a1c87afe573d8c872 Mon Sep 17 00:00:00 2001 From: Ghost69 Date: Tue, 21 Jul 2026 10:48:59 +0100 Subject: [PATCH 1/2] Separate artwork collections from clothing shop --- apps/storefront/app/collections/page.tsx | 39 +++++---- apps/storefront/app/shop/page.tsx | 52 ++++++++--- .../components/product/shop-design-card.tsx | 35 ++++++++ apps/storefront/lib/artwork-images.ts | 3 + apps/storefront/lib/data/mock.ts | 41 +++++++++ .../lib/data/supplied-catalogue.spec.ts | 45 ++++++++++ .../storefront/lib/data/supplied-catalogue.ts | 82 ++++++++++++++++++ apps/storefront/lib/nav.ts | 2 - .../artworks/africa-united-heritage-duo.jpg | Bin 0 -> 202306 bytes .../artworks/africa-united-heritage-trio.jpg | Bin 0 -> 214524 bytes .../artworks/africa-united-night-duo.jpg | Bin 0 -> 184079 bytes .../artworks/africa-united-night-trio.jpg | Bin 0 -> 192878 bytes .../public/artworks/artisan-circle.jpg | Bin 0 -> 243593 bytes .../public/artworks/atelier-circle.jpg | Bin 0 -> 245684 bytes .../public/artworks/city-sisters.jpg | Bin 0 -> 205983 bytes .../public/artworks/garden-seated-muse.jpg | Bin 0 -> 157914 bytes .../public/artworks/green-top-profile.jpg | Bin 0 -> 88835 bytes .../public/artworks/heritage-family.jpg | Bin 0 -> 167129 bytes .../public/artworks/heritage-room-muse.jpg | Bin 0 -> 136150 bytes .../public/artworks/market-cap-muse.jpg | Bin 0 -> 201606 bytes .../public/artworks/market-vendor-muse.jpg | Bin 0 -> 182127 bytes .../public/artworks/night-market-muse.jpg | Bin 0 -> 118165 bytes .../public/artworks/patterned-top-muse.jpg | Bin 0 -> 81572 bytes .../public/artworks/red-cap-pose.jpg | Bin 0 -> 77239 bytes .../public/artworks/resilience-after-dark.jpg | Bin 0 -> 129532 bytes .../artworks/resilience-garden-night.jpg | Bin 0 -> 124966 bytes .../public/artworks/resilience-hands-high.jpg | Bin 0 -> 140058 bytes .../artworks/resilience-heritage-night.jpg | Bin 0 -> 169385 bytes .../artworks/resilience-market-pose.jpg | Bin 0 -> 136287 bytes .../public/artworks/resilience-muse-curls.jpg | Bin 0 -> 127591 bytes .../artworks/resilience-muse-green-cap.jpg | Bin 0 -> 127407 bytes .../artworks/resilience-muse-white-crop.jpg | Bin 0 -> 134886 bytes .../artworks/resilience-night-market.jpg | Bin 0 -> 115991 bytes .../artworks/resilience-night-white.jpg | Bin 0 -> 127628 bytes .../public/artworks/resilience-profile.jpg | Bin 0 -> 128491 bytes .../artworks/resilience-seated-queen.jpg | Bin 0 -> 138724 bytes .../artworks/resilience-studio-seat.jpg | Bin 0 -> 124889 bytes .../public/artworks/striped-crop-muse.jpg | Bin 0 -> 101299 bytes .../public/artworks/studio-cap-muse.jpg | Bin 0 -> 149117 bytes .../public/artworks/studio-stool-muse.jpg | Bin 0 -> 105952 bytes .../public/artworks/sunset-market-muse.jpg | Bin 0 -> 184028 bytes .../public/artworks/white-crop-muse.jpg | Bin 0 -> 80849 bytes .../products/africa-united-black-tee.jpg | Bin 0 -> 100637 bytes .../products/africa-united-model-tee.jpg | Bin 0 -> 121700 bytes .../products/africa-united-white-tee.jpg | Bin 0 -> 93515 bytes .../public/products/resilience-white-tee.jpg | Bin 0 -> 97648 bytes 46 files changed, 268 insertions(+), 31 deletions(-) create mode 100644 apps/storefront/components/product/shop-design-card.tsx create mode 100644 apps/storefront/lib/data/supplied-catalogue.spec.ts create mode 100644 apps/storefront/lib/data/supplied-catalogue.ts create mode 100644 apps/storefront/public/artworks/africa-united-heritage-duo.jpg create mode 100644 apps/storefront/public/artworks/africa-united-heritage-trio.jpg create mode 100644 apps/storefront/public/artworks/africa-united-night-duo.jpg create mode 100644 apps/storefront/public/artworks/africa-united-night-trio.jpg create mode 100644 apps/storefront/public/artworks/artisan-circle.jpg create mode 100644 apps/storefront/public/artworks/atelier-circle.jpg create mode 100644 apps/storefront/public/artworks/city-sisters.jpg create mode 100644 apps/storefront/public/artworks/garden-seated-muse.jpg create mode 100644 apps/storefront/public/artworks/green-top-profile.jpg create mode 100644 apps/storefront/public/artworks/heritage-family.jpg create mode 100644 apps/storefront/public/artworks/heritage-room-muse.jpg create mode 100644 apps/storefront/public/artworks/market-cap-muse.jpg create mode 100644 apps/storefront/public/artworks/market-vendor-muse.jpg create mode 100644 apps/storefront/public/artworks/night-market-muse.jpg create mode 100644 apps/storefront/public/artworks/patterned-top-muse.jpg create mode 100644 apps/storefront/public/artworks/red-cap-pose.jpg create mode 100644 apps/storefront/public/artworks/resilience-after-dark.jpg create mode 100644 apps/storefront/public/artworks/resilience-garden-night.jpg create mode 100644 apps/storefront/public/artworks/resilience-hands-high.jpg create mode 100644 apps/storefront/public/artworks/resilience-heritage-night.jpg create mode 100644 apps/storefront/public/artworks/resilience-market-pose.jpg create mode 100644 apps/storefront/public/artworks/resilience-muse-curls.jpg create mode 100644 apps/storefront/public/artworks/resilience-muse-green-cap.jpg create mode 100644 apps/storefront/public/artworks/resilience-muse-white-crop.jpg create mode 100644 apps/storefront/public/artworks/resilience-night-market.jpg create mode 100644 apps/storefront/public/artworks/resilience-night-white.jpg create mode 100644 apps/storefront/public/artworks/resilience-profile.jpg create mode 100644 apps/storefront/public/artworks/resilience-seated-queen.jpg create mode 100644 apps/storefront/public/artworks/resilience-studio-seat.jpg create mode 100644 apps/storefront/public/artworks/striped-crop-muse.jpg create mode 100644 apps/storefront/public/artworks/studio-cap-muse.jpg create mode 100644 apps/storefront/public/artworks/studio-stool-muse.jpg create mode 100644 apps/storefront/public/artworks/sunset-market-muse.jpg create mode 100644 apps/storefront/public/artworks/white-crop-muse.jpg create mode 100644 apps/storefront/public/products/africa-united-black-tee.jpg create mode 100644 apps/storefront/public/products/africa-united-model-tee.jpg create mode 100644 apps/storefront/public/products/africa-united-white-tee.jpg create mode 100644 apps/storefront/public/products/resilience-white-tee.jpg diff --git a/apps/storefront/app/collections/page.tsx b/apps/storefront/app/collections/page.tsx index d075657..4552559 100644 --- a/apps/storefront/app/collections/page.tsx +++ b/apps/storefront/app/collections/page.tsx @@ -1,44 +1,45 @@ import { Container, EmptyState } from '@tms/ui'; import type { Metadata } from 'next'; -import { CollectionCard } from '@/components/collection/collection-card'; +import { ArtworkCard } from '@/components/artwork/artwork-card'; import { PageHeader } from '@/components/site/page-header'; -import { artworkImage } from '@/lib/artwork-images'; +import { Reveal } from '@/components/site/reveal'; import { dataProvider } from '@/lib/data'; export const metadata: Metadata = { title: 'Collections', - description: 'Curated bodies of work, grouped by theme and season.', + description: 'Browse every standalone artwork in the F.A.T.U collection.', }; export default async function CollectionsPage() { - const summaries = await dataProvider.listCollectionSummaries(); - - // Collection summaries carry no cover image, so pull each collection's pieces and pick the first - // one we actually hold a drawing for as the chapter cover. A handful of collections; cheap. - const details = await Promise.all(summaries.map((s) => dataProvider.getCollection(s.slug))); - const collections = summaries.map((summary, i) => ({ - summary, - coverSlug: details[i]?.artworks.find((a) => artworkImage(a.slug) !== null)?.slug ?? null, - })); + const { items: artworks } = await dataProvider.listArtworks({ limit: 60 }); return ( - {collections.length === 0 ? ( + {artworks.length === 0 ? (
- +
) : ( -