import { getDb } from '@/lib/db' import type { Memory, MediaItem } from '@/lib/types' import HeroSection from '@/components/HeroSection' import PhotoSlideshow from '@/components/PhotoSlideshow' import PhotoGallery from '@/components/PhotoGallery' import MemorySection from '@/components/MemorySection' import WriteSection from '@/components/WriteSection' import VideoGallery from '@/components/VideoGallery' import TributeSection from '@/components/TributeSection' export const dynamic = 'force-dynamic' // node:sqlite returns null-prototype objects; convert to plain objects for Client Components function plain(rows: unknown[]): T[] { return JSON.parse(JSON.stringify(rows)) } export default async function HomePage() { const db = getDb() const photos = plain( db.prepare("SELECT * FROM media WHERE type = 'photo' ORDER BY sort_order, created_at").all() ) const videos = plain( db.prepare("SELECT * FROM media WHERE type = 'video' ORDER BY sort_order, created_at").all() ) const memories = plain( db.prepare('SELECT * FROM memories ORDER BY created_at DESC').all() ) return (
{/* Hero */} {/* Navigation */} {/* Personal tribute */} {/* Photos */} {photos.length > 0 && (

Erinnerungen in Bildern

{photos.length > 1 && }
)} {/* Write */} {/* Memories */}
{/* Videos */} {/* Footer */}
) }