diff --git a/frontend/src/app/store/page.tsx b/frontend/src/app/store/page.tsx index 3b34d10..06c947a 100644 --- a/frontend/src/app/store/page.tsx +++ b/frontend/src/app/store/page.tsx @@ -13,11 +13,8 @@ export const revalidate = 0; async function getShopItems(): Promise<{ available: Artwork[]; sold: Artwork[] }> { try { - const allArtworks = await getArtworks({}); - const available = allArtworks.filter( - (a) => a.status === 'published' && a.price && a.price > 0 - ); - const sold = allArtworks.filter((a) => a.status === 'sold'); + const available = await getArtworks({ status: 'published', forSale: true }); + const sold = await getArtworks({ status: 'sold', forSale: true }); return { available, sold }; } catch (error) { console.error('Error fetching shop items:', error); diff --git a/frontend/src/lib/directus.ts b/frontend/src/lib/directus.ts index df4d493..9cac97c 100644 --- a/frontend/src/lib/directus.ts +++ b/frontend/src/lib/directus.ts @@ -238,10 +238,14 @@ export async function getArtworks(options?: { series?: string; limit?: number; fields?: string[]; + forSale?: boolean; }): Promise { const filter: Record = {}; if (options?.status) filter.status = { _eq: options.status }; if (options?.series) filter.series = { _eq: options.series }; + if (options?.forSale) { + filter.price_gbp = { _nnull: true, _gt: 0 }; + } const result = await directus.request( readItems('artworks', {