feat: implement manageable homepage banner slider with support for businesses and custom slides
This commit is contained in:
@@ -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}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user