// 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 Slider from 'react-slick'; import 'slick-carousel/slick/slick.css'; import 'slick-carousel/slick/slick-theme.css'; 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.

); } return (
{/* Header */}
{user && ({user.name})}

{dream.title}

{user && (

{user.name} •{' '} {formatDateWithTime(dream.date)}

)}
Traum-Beschreibung
{(dream.input.inputType === 'image' || dream.input.inputType === 'audio') && (
{dream.input.inputType === 'audio' && ()} {dream.input.inputType === 'image' && ({dream.input.imgAlt})}
)}

{(dream.input.inputType === 'text' && dream.input.input) || (dream.input.inputType === 'audio' && dream.input.transcript) || (dream.input.inputType === 'image' && dream.input.description)}

{dream.ai?.interpretation && dream.ai.interpretation !== '' && (
KI-Interpretation

{dream.ai.interpretation}

)} {/* Carousel for KI-Bild and KI-Video if both exist */} {dream.ai?.image && dream.ai.video && dream.ai.image !== '' && dream.ai.video !== '' && (
KI-Medien
KI-generiertes Traumbild
)} {/* Show KI-Bild alone if video doesn't exist */} {dream.ai?.image && dream.ai.image !== '' && (!dream.ai.video || dream.ai.video === '') && (
KI-Bild
KI-generiertes Traumbild
)} {/* Show KI-Video alone if image doesn't exist */} {dream.ai?.video && dream.ai.video !== '' && (!dream.ai.image || dream.ai.image === '') && (
KI-Video
)} {dream.ai?.audio && dream.ai.audio !== '' && (
KI-Audio
)}

Details

Eingabetyp {dream.input.inputType}
Datum {formatDateNumeric(dream.date)}
); }