'use client' import { useState } from 'react'; import { cultures } from '@/data/cultures'; import { generateDescription, generateImage } from '@/services/ai'; import { motion, AnimatePresence } from 'framer-motion'; export default function Home() { const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [showPreview, setShowPreview] = useState(false); const [culture, setCulture] = useState<{ name: string; description: string; imageUrl: string; } | null>(null); const generateRandomCulture = async () => { setLoading(true); setError(null); try { const randomCulture = cultures[Math.floor(Math.random() * cultures.length)]; const [description, imageData] = await Promise.all([ generateDescription(randomCulture), generateImage(`Indonesian traditional culture ${randomCulture}, professional photography style, high quality, detailed, 4k resolution`) ]); if (!imageData || !imageData.imageUrl) { throw new Error('Failed to generate image'); } setCulture({ name: randomCulture, description: description || '', imageUrl: imageData.imageUrl }); } catch (error) { console.error('Error:', error); setError('Failed to generate content. Please try again.'); } finally { setLoading(false); } }; return (
Warisan Nusantara Menjelajahi Ragam Warisan Budaya Indonesia
{loading ? (
Memuat...
) : ( 'Jelajahi Budaya' )}
{error && ( {error} )} {culture && (
setShowPreview(true)}> {culture.imageUrl && ( {culture.name} { console.error('Image failed to load'); e.currentTarget.src = '/placeholder-image.jpg'; }} /> )}
Klik untuk memperbesar

{culture.name}

{culture.description}

)}
{showPreview && culture && ( setShowPreview(false)} > {culture.name} )}
); }