import React, { useEffect, useState } from 'react' import { useParams, useNavigate, Link } from 'react-router-dom' import { useTripStore } from '../store/tripStore' import { tripsApi, placesApi } from '../api/client' import Navbar from '../components/Layout/Navbar' import FileManager from '../components/Files/FileManager' import { ArrowLeft } from 'lucide-react' import { useTranslation } from '../i18n' import type { Trip, Place, TripFile } from '../types' export default function FilesPage(): React.ReactElement { const { t } = useTranslation() const { id: tripId } = useParams<{ id: string }>() const navigate = useNavigate() const tripStore = useTripStore() const [trip, setTrip] = useState(null) const [places, setPlaces] = useState([]) const [files, setFiles] = useState([]) const [isLoading, setIsLoading] = useState(true) useEffect(() => { loadData() }, [tripId]) const loadData = async (): Promise => { setIsLoading(true) try { const [tripData, placesData] = await Promise.all([ tripsApi.get(tripId), placesApi.list(tripId), ]) setTrip(tripData.trip) setPlaces(placesData.places) await tripStore.loadFiles(tripId) } catch (err: unknown) { navigate('/dashboard') } finally { setIsLoading(false) } } useEffect(() => { setFiles(tripStore.files) }, [tripStore.files]) const handleUpload = async (formData: FormData): Promise => { await tripStore.addFile(tripId, formData) } const handleDelete = async (fileId: number): Promise => { await tripStore.deleteFile(tripId, fileId) } if (isLoading) { return (
) } return (
navigate(`/trips/${tripId}`)} />
{t('common.backToPlanning')}

Dateien & Dokumente

{files.length} Dateien für {trip?.name}

) }