import { useState } from 'react' import { ChevronsDownUp, ChevronsUpDown, FileDown, Undo2, ArrowUpDown } from 'lucide-react' import { downloadTripPDF } from '../PDF/TripPDF' import { DayReorderPopup } from './DayReorderPopup' import Tooltip from '../shared/Tooltip' import { useToast } from '../shared/Toast' import type { Trip, Day, Place, Category, AssignmentsMap, Reservation, DayNote } from '../../types' interface DayPlanSidebarToolbarProps { tripId: number trip: Trip days: Day[] places: Place[] categories: Category[] assignments: AssignmentsMap reservations: Reservation[] dayNotes: Record t: (key: string, params?: Record) => string locale: string toast: ReturnType pdfHover: boolean setPdfHover: (v: boolean) => void icsHover: boolean setIcsHover: (v: boolean) => void expandedDays: Set setExpandedDays: (next: Set) => void onUndo?: () => void canUndo: boolean undoHover: boolean setUndoHover: (v: boolean) => void lastActionLabel: string | null canEditDays?: boolean onReorderDays?: (orderedIds: number[]) => void onAddDay?: (position?: number) => void } export function DayPlanSidebarToolbar({ tripId, trip, days, places, categories, assignments, reservations, dayNotes, t, locale, toast, pdfHover, setPdfHover, icsHover, setIcsHover, expandedDays, setExpandedDays, onUndo, canUndo, undoHover, setUndoHover, lastActionLabel, canEditDays, onReorderDays, onAddDay, }: DayPlanSidebarToolbarProps) { const [reorderOpen, setReorderOpen] = useState(false) return (
{pdfHover && (
{t('dayplan.pdfTooltip')}
)}
{icsHover && (
{t('dayplan.icsTooltip')}
)}
{(() => { const allExpanded = days.length > 0 && days.every(d => expandedDays.has(d.id)) const label = allExpanded ? t('dayplan.collapseAll') : t('dayplan.expandAll') return ( ) })()} {onUndo && (
{undoHover && (
{canUndo && lastActionLabel ? t('undo.tooltip', { action: lastActionLabel }) : t('undo.button')}
)}
)} {canEditDays && onReorderDays && onAddDay && days.length > 0 && (
onAddDay()} onClose={() => setReorderOpen(false)} />
)}
) }