feat: AI image classification and dynamic fallback assignment
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 44s
Build & Deploy / 🧪 QA (push) Successful in 1m4s
Build & Deploy / 🏗️ Build (push) Successful in 1m54s
Build & Deploy / 🚀 Deploy (push) Successful in 28s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 43s
Build & Deploy / 🔔 Notify (push) Successful in 2s
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 44s
Build & Deploy / 🧪 QA (push) Successful in 1m4s
Build & Deploy / 🏗️ Build (push) Successful in 1m54s
Build & Deploy / 🚀 Deploy (push) Successful in 28s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 43s
Build & Deploy / 🔔 Notify (push) Successful in 2s
This commit is contained in:
@@ -9,6 +9,7 @@ import { SITE_URL } from '@/lib/schema';
|
||||
import Image from 'next/image';
|
||||
import { InteractiveGermanyMap } from '@/components/blocks/InteractiveGermanyMap';
|
||||
import { defaultLocations, minorLocations } from '@/lib/map-data';
|
||||
import { getImageForProject } from '@/lib/image-matcher';
|
||||
|
||||
interface PageProps {
|
||||
params: Promise<{
|
||||
@@ -59,7 +60,7 @@ export default async function ReferenzenOverview(props: { params: Promise<{ loca
|
||||
if (ref) {
|
||||
return {
|
||||
...loc,
|
||||
featuredImage: ref.frontmatter.featuredImage,
|
||||
featuredImage: ref.frontmatter.featuredImage || getImageForProject(ref.slug, loc.description),
|
||||
details: [
|
||||
ref.frontmatter.client || 'Kunde',
|
||||
ref.frontmatter.dateString || new Date(ref.frontmatter.date).getFullYear().toString(),
|
||||
@@ -67,7 +68,10 @@ export default async function ReferenzenOverview(props: { params: Promise<{ loca
|
||||
};
|
||||
}
|
||||
}
|
||||
return loc;
|
||||
return {
|
||||
...loc,
|
||||
featuredImage: loc.featuredImage || getImageForProject(loc.id, loc.description)
|
||||
};
|
||||
});
|
||||
|
||||
return (
|
||||
@@ -99,18 +103,12 @@ export default async function ReferenzenOverview(props: { params: Promise<{ loca
|
||||
<div className="flex flex-col h-full relative">
|
||||
{/* Image Section */}
|
||||
<div className="relative h-64 w-full bg-[#f4f4f5] overflow-hidden shrink-0 border-b border-neutral-100">
|
||||
{ref.frontmatter.featuredImage ? (
|
||||
<Image
|
||||
src={ref.frontmatter.featuredImage}
|
||||
alt={ref.frontmatter.title}
|
||||
fill
|
||||
className="object-cover transition-transform duration-1000 ease-[cubic-bezier(0.16,1,0.3,1)] filter grayscale-[20%]"
|
||||
/>
|
||||
) : (
|
||||
<div className="absolute inset-0 bg-[#f4f4f5] flex items-center justify-center">
|
||||
<Image src="/assets/logo.png" alt="E-TIB Logo" width={80} height={80} className="opacity-20 grayscale" />
|
||||
</div>
|
||||
)}
|
||||
<Image
|
||||
src={ref.frontmatter.featuredImage || getImageForProject(ref.slug, enrichedLocations.find(l => l.id === ref.slug)?.description || 'fiber')}
|
||||
alt={ref.frontmatter.title}
|
||||
fill
|
||||
className="object-cover transition-transform duration-1000 ease-[cubic-bezier(0.16,1,0.3,1)] filter grayscale-[20%]"
|
||||
/>
|
||||
<div className="absolute inset-0 bg-black/5 transition-colors duration-500" />
|
||||
|
||||
{/* Location Badge */}
|
||||
|
||||
Reference in New Issue
Block a user