import React, { useState, useEffect } from "react"; import { BrowserRouter as Router, Routes, Route, Link, Navigate, useNavigate } from "react-router-dom"; import { getSeed, getTrips, getNextTripId } from "./api"; import ItemsPage from "./pages/ItemsPage"; import TripChecklist from "./pages/TripChecklist"; function NextTripRedirect({ trips }: { trips: any[] }) { const [nextTripId, setNextTripId] = React.useState(null); const [error, setError] = React.useState(null); React.useEffect(() => { getNextTripId() .then(setNextTripId) .catch(() => setError("Kein anstehender Trip gefunden")); }, []); if (error) return
{error}
; if (!nextTripId) return
Lade...
; return ; } export default function App() { const [trips, setTrips] = useState([]); const navigate = useNavigate(); async function loadTrips() { const data = await getTrips(); setTrips(data); } useEffect(() => { loadTrips(); }, []); async function goToCurrentTrip() { try { const id = await getNextTripId(); navigate(`/trips/${id}`); } catch { alert("Kein anstehender Trip gefunden"); } } return (

Packlist

{trips.map((trip) => (
  • {trip.name} ({trip.start_date} – {trip.end_date})
  • ))} } /> } /> } /> } />
    ); } // Wichtig: Der -Inhalt muss innerhalb von verwendet werden! // In main.tsx ist das bereits der Fall.