Connect product/blog pages, mega menu, and instant search to Meshkee backend
Add /products (list + detail) and /blog (list + detail) routes backed by the real Meshkee API, a real category-hierarchy mega menu (level 2/3 only), debounced instant search proxied through a same-origin API route, and tel:-link fallbacks on product cards when no price is set. Also fixes Product price normalization to read the real API shape instead of a guessed one, and hardens product linking against catalog sources that don't expose a slug. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
1f81236d0a
commit
2b5f4e437b
@@ -5,6 +5,7 @@ type PlaceholderProps = {
|
||||
height?: string;
|
||||
label?: string;
|
||||
className?: string;
|
||||
fit?: "cover" | "contain";
|
||||
};
|
||||
|
||||
export function Placeholder({
|
||||
@@ -14,6 +15,7 @@ export function Placeholder({
|
||||
height,
|
||||
label,
|
||||
className = "",
|
||||
fit = "cover",
|
||||
}: PlaceholderProps) {
|
||||
return (
|
||||
<div
|
||||
@@ -23,7 +25,7 @@ export function Placeholder({
|
||||
<img
|
||||
src={src}
|
||||
alt={alt}
|
||||
className="absolute inset-0 h-full w-full object-cover"
|
||||
className={`absolute inset-0 h-full w-full ${fit === "contain" ? "object-contain" : "object-cover"}`}
|
||||
/>
|
||||
{label && (
|
||||
<span className="font-display pointer-events-none relative z-10 rounded bg-white/70 px-1.5 py-0.5 text-xs tracking-wider text-red-dark/50 uppercase">
|
||||
|
||||
Reference in New Issue
Block a user