// src/pages/DreamPage.tsx import {type NavigateFunction, useNavigate, useParams} from 'react-router-dom'; import {mockDreams} from '../data/MockDreams'; import MockUsers from '../data/MockUsers'; import User from '../types/User'; import type Dream from "../types/Dream.ts"; import {formatDateNumeric, formatDateWithTime} from '../utils/DateUtils'; import {lazy, Suspense} from 'react'; // Lazy load components const DreamVR = lazy(() => import('../components/DreamVR')); const SliderComponent = lazy(() => import('react-slick')); const EEGChart = lazy(() => import('../components/DreamCharts').then(module => ({default: module.EEGChart}))); const VitalsChart = lazy(() => import('../components/DreamCharts').then(module => ({default: module.VitalsChart}))); const MovementChart = lazy(() => import('../components/DreamCharts').then(module => ({default: module.MovementChart}))); export default function DreamPage() { const {id} = useParams<{ id: string }>(); const navigate: NavigateFunction = useNavigate(); const dream: Dream | undefined = mockDreams.find(d => d.id === Number(id)); const user: User | undefined = dream ? MockUsers.find(u => u.id === dream.userId) : undefined; if (!dream) { return (
Traum nicht gefunden.
{user.name} •{' '} {formatDateWithTime(dream.date)}
)}{dream.input.description}
{dream.input.transcript}
{dream.input.input}
)} {dream.input.inputType === 'chip' && ({dream.input.text}
Lade EEG-Daten...
Lade Vitaldaten...
Lade Bewegungsdaten...
{dream.ai.interpretation}
Lade Medien-Karussell...
Lade VR-Visualisierung...