import { useState, useEffect } from 'react'; import { FiStar } from 'react-icons/fi'; import { type Language } from '../translations'; import { useFavorites } from '../hooks/useFavorites'; import { CircularProgress } from './CircularProgress'; import { useNavigate } from 'react-router-dom'; import { slugify } from '../utils/slugify'; import { AreaChart, Area, ResponsiveContainer } from 'recharts'; import { FiTrendingUp, FiTrendingDown } from 'react-icons/fi'; interface Lake { id: string; name: string; river: string; priority: boolean; level: number; capacity: number; storageDiff?: number; inflow: number; outflow: number; volume: number; sparkline: number[]; } interface Props { language: Language; } const FavoritesOverview = ({ language }: Props) => { const [lakes, setLakes] = useState([]); const { isFavorite, toggleFavorite } = useFavorites(); const navigate = useNavigate(); useEffect(() => { fetch(`/data/lakes_index.json?t=${Date.now()}`) .then(res => res.json()) .then(data => setLakes(data)) .catch(err => console.error(err)); }, []); const favoriteLakes = lakes.filter(l => isFavorite(l.id)); return (

{language === 'cs' ? 'Oblíbená' : 'Favourites'}

{language === 'cs' ? 'Jezera připnutá v přehledu. Připnout nebo odepnout lze ikonou hvězdičky.' : 'Lakes you pinned in the overview. Use the star icon to pin or unpin.'}

{favoriteLakes.length === 0 ? (

{language === 'cs' ? 'Zatím žádná oblíbená jezera.' : 'No favourites yet.'}

{language === 'cs' ? 'Přejdi na Jezera a nádrže a klikni na ⭐ u jezera, které tě zajímá.' : 'Go to Lakes & Reservoirs and click the ⭐ on any lake to pin it here.'}

) : (
{favoriteLakes.map(lake => { const chartData = lake.sparkline.map((val, i) => ({ name: i, value: val })); const isFav = isFavorite(lake.id); return (
navigate(`/${slugify(lake.name)}`)} style={{ cursor: 'pointer', padding: '1.5rem', display: 'flex', flexDirection: 'column', gap: '1.5rem', position: 'relative' }} > {/* Unpin button */}

{lake.name} {lake.river ? `- ${lake.river}` : ''}

Water level
{lake.level} m n.m.
{lake.storageDiff !== undefined && (
= 0 ? 'var(--color-green)' : 'var(--color-red)', fontWeight: 'bold' }}> {lake.storageDiff > 0 ? '+' : ''}{lake.storageDiff.toFixed(2)} m
)}
Inflow {lake.inflow} m³/s
Outflow {lake.outflow} m³/s
); })}
)}
); }; export default FavoritesOverview;