| | |
| | | "use client"; |
| | | |
| | | import { useState, useEffect } from 'react'; |
| | | import { useState, useEffect, Suspense } from 'react'; |
| | | import { motion, AnimatePresence } from 'framer-motion'; |
| | | import { useSearchParams } from 'next/navigation'; |
| | | import { useRouter } from 'next/navigation'; |
| | |
| | | ]; |
| | | |
| | | export default function AISceneChatPage() { |
| | | return ( |
| | | <Suspense fallback={<div>Loading...</div>}> |
| | | <AISceneChatContent /> |
| | | </Suspense> |
| | | ); |
| | | } |
| | | |
| | | function AISceneChatContent() { |
| | | const searchParams = useSearchParams(); |
| | | const sceneId = searchParams.get('scene'); |
| | | const router = useRouter(); |
| | |
| | | )} |
| | | <div className="flex items-center relative z-10"> |
| | | <div className="w-8 h-8 rounded-lg overflow-hidden mr-3 relative flex-shrink-0"> |
| | | <img |
| | | <Image |
| | | src={scene.imageUrl} |
| | | alt={scene.title} |
| | | width={32} |
| | | height={32} |
| | | className="w-full h-full object-cover transform transition-transform duration-700 group-hover:scale-110" |
| | | /> |
| | | <div className="absolute inset-0 bg-gradient-to-br from-black/20 to-transparent"></div> |