diff --git a/estore/src/app/admin/page.tsx b/estore/src/app/admin/page.tsx index 690853d..dedc5ff 100644 --- a/estore/src/app/admin/page.tsx +++ b/estore/src/app/admin/page.tsx @@ -724,7 +724,8 @@ function ItemEditor({ }) { const ov = item._override - const [hidden, setHidden] = useState(ov.hidden ?? false) + const [hidden, setHidden] = useState(ov.hidden ?? false) + const [featured, setFeatured] = useState(ov.featured ?? item.featured ?? false) const [catOverride, setCatOverride] = useState(ov.categoryOverride ?? '') const [catLabel, setCatLabel] = useState(ov.categoryLabelOverride ?? '') const [sortOrder, setSortOrder] = useState(String(ov.sortOrder ?? '')) @@ -780,6 +781,7 @@ function ItemEditor({ setError('') const patch: Partial = { hidden, + featured, hiddenVariationIds: hiddenVars, hiddenModifierIds: hiddenMods, } @@ -816,6 +818,7 @@ function ItemEditor({ const res = await fetch(`${BASE}/api/admin/items/${item.id}`, { method: 'DELETE' }) if (res.ok) { setHidden(false) + setFeatured(item.featured ?? false) setCatOverride('') setCatLabel('') setSortOrder('') @@ -864,8 +867,8 @@ function ItemEditor({ {/* Left column */}
- {/* Hidden toggle */} -
+ {/* Visibility toggles */} +
+
{/* Category */} diff --git a/estore/src/app/api/catalog/route.ts b/estore/src/app/api/catalog/route.ts index de95b0b..9748a42 100644 --- a/estore/src/app/api/catalog/route.ts +++ b/estore/src/app/api/catalog/route.ts @@ -12,6 +12,7 @@ function applyOverrides(items: CatalogItem[]): CatalogItem[] { if (!ov) return item return { ...item, + featured: ov.featured ?? item.featured, category: ov.categoryOverride ?? item.category, categoryLabel: ov.categoryLabelOverride ?? item.categoryLabel, showColors: ov.showColors != null ? ov.showColors : item.showColors, @@ -33,6 +34,8 @@ function applyOverrides(items: CatalogItem[]): CatalogItem[] { }) .filter((item) => !(overrides[item.id]?.hidden)) .sort((a, b) => { + const featDiff = (b.featured ? 1 : 0) - (a.featured ? 1 : 0) + if (featDiff !== 0) return featDiff const aOrder = overrides[a.id]?.sortOrder ?? 0 const bOrder = overrides[b.id]?.sortOrder ?? 0 return aOrder - bOrder diff --git a/estore/src/components/ProductCard.tsx b/estore/src/components/ProductCard.tsx index 9e3c55c..e07cf58 100644 --- a/estore/src/components/ProductCard.tsx +++ b/estore/src/components/ProductCard.tsx @@ -55,6 +55,15 @@ export default function ProductCard({ item }: Props) { ) : (
🎈
)} + {item.featured && !soldOut && ( + Featured + )} {soldOut && (