diff --git a/client/src/components/Planner/DayDetailPanel.tsx b/client/src/components/Planner/DayDetailPanel.tsx index 49cd6ff8..e841abde 100644 --- a/client/src/components/Planner/DayDetailPanel.tsx +++ b/client/src/components/Planner/DayDetailPanel.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect } from 'react' import ReactDOM from 'react-dom' -import { X, Sun, Cloud, CloudRain, CloudSnow, CloudDrizzle, CloudLightning, Wind, Droplets, Sunrise, Sunset, Hotel, Calendar, MapPin, LogIn, LogOut, Hash, Pencil, Plane, Utensils, Train, Car, Ship, Ticket, FileText, Users } from 'lucide-react' +import { X, Sun, Cloud, CloudRain, CloudSnow, CloudDrizzle, CloudLightning, Wind, Droplets, Sunrise, Sunset, Hotel, Calendar, MapPin, LogIn, LogOut, Hash, Pencil, Plane, Utensils, Train, Car, Ship, Ticket, FileText, Users, ChevronsDown, ChevronsUp } from 'lucide-react' const RES_TYPE_ICONS = { flight: Plane, hotel: Hotel, restaurant: Utensils, train: Train, car: Car, cruise: Ship, event: Ticket, tour: Users, other: FileText } const RES_TYPE_COLORS = { flight: '#3b82f6', hotel: '#8b5cf6', restaurant: '#ef4444', train: '#06b6d4', car: '#6b7280', cruise: '#0ea5e9', event: '#f59e0b', tour: '#10b981', other: '#6b7280' } @@ -54,9 +54,11 @@ interface DayDetailPanelProps { onAccommodationChange: () => void leftWidth?: number rightWidth?: number + collapsed?: boolean + onToggleCollapse?: () => void } -export default function DayDetailPanel({ day, days, places, categories = [], tripId, assignments, reservations = [], lat, lng, onClose, onAccommodationChange, leftWidth = 0, rightWidth = 0 }: DayDetailPanelProps) { +export default function DayDetailPanel({ day, days, places, categories = [], tripId, assignments, reservations = [], lat, lng, onClose, onAccommodationChange, leftWidth = 0, rightWidth = 0, collapsed: collapsedProp = false, onToggleCollapse }: DayDetailPanelProps) { const { t, language, locale } = useTranslation() const can = useCanDo() const tripObj = useTripStore((s) => s.trip) @@ -66,6 +68,8 @@ export default function DayDetailPanel({ day, days, places, categories = [], tri const blurCodes = useSettingsStore(s => s.settings.blur_booking_codes) const fmtTime = (v) => formatTime12(v, is12h) const unit = isFahrenheit ? '°F' : '°C' + const collapsed = collapsedProp + const toggleCollapse = () => onToggleCollapse?.() const [weather, setWeather] = useState(null) const [loading, setLoading] = useState(false) const [accommodation, setAccommodation] = useState(null) @@ -170,26 +174,36 @@ export default function DayDetailPanel({ day, days, places, categories = [], tri WebkitBackdropFilter: 'blur(40px) saturate(180%)', borderRadius: 20, boxShadow: '0 8px 40px rgba(0,0,0,0.14), 0 0 0 1px rgba(0,0,0,0.06)', - overflow: 'hidden', maxHeight: '60vh', display: 'flex', flexDirection: 'column', + overflow: 'hidden', maxHeight: collapsed ? 'none' : '60vh', display: 'flex', flexDirection: 'column', }}> {/* Header */} -