feat: add dynamic site settings, hero media, admin panels, and database integration

This commit is contained in:
mstfyldz
2026-06-05 16:59:05 +03:00
parent 121e127f6b
commit 94182b6bc5
27 changed files with 1894 additions and 52 deletions
+8 -6
View File
@@ -7,29 +7,31 @@ import Image from "next/image";
const photos = [
{ id: 1, categoryKey: "beach", url: "https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&q=80&w=1200" },
{ id: 2, categoryKey: "rooms", url: "https://images.unsplash.com/photo-1611892440504-42a792e24d32?auto=format&fit=crop&q=80&w=1200" },
{ id: 3, categoryKey: "restaurant", url: "https://images.unsplash.com/photo-1414235077428-338989a2e8c0?auto=format&fit=crop&q=80&w=1200" },
{ id: 4, categoryKey: "beach", url: "https://images.unsplash.com/photo-1519046904884-53103b34b206?auto=format&fit=crop&q=80&w=1200" },
{ id: 5, categoryKey: "events", url: "https://images.unsplash.com/photo-1511285560929-80b456fea0bc?auto=format&fit=crop&q=80&w=1200" },
{ id: 6, categoryKey: "restaurant", url: "https://images.unsplash.com/photo-1555396273-367ea4eb4db5?auto=format&fit=crop&q=80&w=1200" },
];
export default function Gallery({ dict }: { dict: any }) {
export default function Gallery({ dict, dbPhotos }: { dict: any, dbPhotos?: any[] }) {
const categories = [
{ key: "all", label: dict.gallery.categories.all },
{ key: "beach", label: dict.gallery.categories.beach },
{ key: "restaurant", label: dict.gallery.categories.restaurant },
{ key: "rooms", label: dict.gallery.categories.rooms },
{ key: "events", label: dict.gallery.categories.events }
];
const [activeCategoryKey, setActiveCategoryKey] = useState("all");
const [selectedImage, setSelectedImage] = useState<string | null>(null);
const displayPhotos = dbPhotos && dbPhotos.length > 0
? dbPhotos.map(p => ({ id: p.id, categoryKey: p.category, url: p.imageUrl, title: p.title }))
: photos;
const filteredPhotos =
activeCategoryKey === "all"
? photos
: photos.filter((p) => p.categoryKey === activeCategoryKey);
? displayPhotos
: displayPhotos.filter((p) => p.categoryKey === activeCategoryKey);
return (
<section id="gallery" className="py-24 bg-sand-light text-sea-dark">
@@ -76,7 +78,7 @@ export default function Gallery({ dict }: { dict: any }) {
>
<Image
src={photo.url}
alt={dict.gallery.categories[photo.categoryKey]}
alt={(photo as any).title || dict.gallery.categories[photo.categoryKey] || "Galeri Görseli"}
fill
className="object-cover transform group-hover:scale-108 transition-transform duration-700"
sizes="(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw"