feat: implement manageable homepage banner slider with support for businesses and custom slides

This commit is contained in:
2026-05-10 16:30:19 +02:00
parent 13b1730f6f
commit 87b13dce13
12 changed files with 868 additions and 51 deletions

View File

@@ -44,7 +44,7 @@ export async function generateMetadata(): Promise<Metadata> {
export default async function HomePage() {
// Fetch initial data for faster loading and SEO
const [featuredBusinesses, posts, categories] = await Promise.all([
const [featuredBusinesses, posts, categories, slides] = await Promise.all([
prisma.business.findMany({
where: { isFeatured: true, isActive: true, isSuspended: false },
take: 4,
@@ -58,6 +58,11 @@ export default async function HomePage() {
prisma.businessCategory.findMany({
where: { isActive: true },
take: 8
}),
prisma.homeSlide.findMany({
where: { isActive: true },
orderBy: { order: 'asc' },
include: { business: true }
})
]);
@@ -65,12 +70,14 @@ export default async function HomePage() {
const initialFeatured = JSON.parse(JSON.stringify(featuredBusinesses));
const initialPosts = JSON.parse(JSON.stringify(posts));
const initialCategories = JSON.parse(JSON.stringify(categories));
const initialSlides = JSON.parse(JSON.stringify(slides));
return (
<HomeClient
initialFeatured={initialFeatured}
initialPosts={initialPosts}
initialCategories={initialCategories}
initialSlides={initialSlides}
/>
);
}