From 0c510c95b52361ed2384f7cd66790e7a334ba7af Mon Sep 17 00:00:00 2001 From: mstfyldz Date: Fri, 5 Jun 2026 23:54:38 +0300 Subject: [PATCH] feat: implement dynamic hero image and header updates --- app/[lang]/page.tsx | 16 ++++++---------- app/admin/actions.ts | 2 ++ components/Header.tsx | 5 ++++- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/[lang]/page.tsx b/app/[lang]/page.tsx index 74102c6..44fc93f 100644 --- a/app/[lang]/page.tsx +++ b/app/[lang]/page.tsx @@ -13,19 +13,15 @@ export default async function Home({ params }: { params: Promise<{ lang: string const { lang } = await params; const dict = await getDictionary(lang); - const dbPhotos = await prisma.gallery.findMany({ - orderBy: { createdAt: 'desc' } - }); + const [dbPhotos, dbServices, heroMediaList, dbSettings] = await Promise.all([ + prisma.gallery.findMany({ orderBy: { createdAt: 'desc' } }), + prisma.service.findMany({ orderBy: { createdAt: 'asc' } }), + prisma.heroMedia.findMany(), + prisma.siteSettings.findFirst() + ]); - const dbServices = await prisma.service.findMany({ - orderBy: { createdAt: 'asc' } - }); - - const heroMediaList = await prisma.heroMedia.findMany(); const dbHeroMedia = heroMediaList.length > 0 ? heroMediaList[0] : null; - const dbSettings = await prisma.siteSettings.findFirst(); - return (
diff --git a/app/admin/actions.ts b/app/admin/actions.ts index 5e5bf97..542c6e9 100644 --- a/app/admin/actions.ts +++ b/app/admin/actions.ts @@ -3,6 +3,7 @@ import { prisma } from '@/lib/db'; import { createSession, deleteSession } from '@/lib/auth'; import bcrypt from 'bcryptjs'; +import { revalidatePath } from 'next/cache'; // Auth Actions export async function login(formData: FormData) { @@ -75,6 +76,7 @@ export async function updateHeroMedia(url: string, type: string) { await prisma.heroMedia.create({ data: { url, type } }); + revalidatePath('/', 'layout'); } // Site Settings Actions diff --git a/components/Header.tsx b/components/Header.tsx index db7056a..d63f73f 100644 --- a/components/Header.tsx +++ b/components/Header.tsx @@ -2,6 +2,7 @@ import { useState, useEffect } from "react"; import { Menu, X } from "lucide-react"; +import Image from "next/image"; export default function Header({ dict, lang, dbSettings }: { dict: any, lang: string, dbSettings?: any }) { const [isScrolled, setIsScrolled] = useState(false); @@ -30,9 +31,11 @@ export default function Header({ dict, lang, dbSettings }: { dict: any, lang: st >
- Moy Beach Logo