From f0131632a7fa84baa68e8ee8cf7e40d550e80f25 Mon Sep 17 00:00:00 2001 From: Maurice Date: Thu, 2 Apr 2026 15:05:36 +0200 Subject: [PATCH] fix: show icon-only trip tabs on mobile to prevent overflow --- client/src/pages/TripPlannerPage.tsx | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/client/src/pages/TripPlannerPage.tsx b/client/src/pages/TripPlannerPage.tsx index 61e0877..47918bd 100644 --- a/client/src/pages/TripPlannerPage.tsx +++ b/client/src/pages/TripPlannerPage.tsx @@ -22,7 +22,7 @@ import BudgetPanel from '../components/Budget/BudgetPanel' import CollabPanel from '../components/Collab/CollabPanel' import Navbar from '../components/Layout/Navbar' import { useToast } from '../components/shared/Toast' -import { Map, X, PanelLeftClose, PanelLeftOpen, PanelRightClose, PanelRightOpen } from 'lucide-react' +import { Map, X, PanelLeftClose, PanelLeftOpen, PanelRightClose, PanelRightOpen, Ticket, PackageCheck, Wallet, FolderOpen, Camera, Users } from 'lucide-react' import { useTranslation } from '../i18n' import { addonsApi, accommodationsApi, authApi, tripsApi, assignmentsApi, mapsApi } from '../api/client' import ConfirmDialog from '../components/shared/ConfirmDialog' @@ -86,13 +86,13 @@ export default function TripPlannerPage(): React.ReactElement | null { }, []) const TRIP_TABS = [ - { id: 'plan', label: t('trip.tabs.plan') }, - { id: 'buchungen', label: t('trip.tabs.reservations'), shortLabel: t('trip.tabs.reservationsShort') }, - ...(enabledAddons.packing ? [{ id: 'packliste', label: t('trip.tabs.packing'), shortLabel: t('trip.tabs.packingShort') }] : []), - ...(enabledAddons.budget ? [{ id: 'finanzplan', label: t('trip.tabs.budget') }] : []), - ...(enabledAddons.documents ? [{ id: 'dateien', label: t('trip.tabs.files') }] : []), - ...(enabledAddons.memories ? [{ id: 'memories', label: t('memories.title') }] : []), - ...(enabledAddons.collab ? [{ id: 'collab', label: t('admin.addons.catalog.collab.name') }] : []), + { id: 'plan', label: t('trip.tabs.plan'), icon: Map }, + { id: 'buchungen', label: t('trip.tabs.reservations'), shortLabel: t('trip.tabs.reservationsShort'), icon: Ticket }, + ...(enabledAddons.packing ? [{ id: 'packliste', label: t('trip.tabs.packing'), shortLabel: t('trip.tabs.packingShort'), icon: PackageCheck }] : []), + ...(enabledAddons.budget ? [{ id: 'finanzplan', label: t('trip.tabs.budget'), icon: Wallet }] : []), + ...(enabledAddons.documents ? [{ id: 'dateien', label: t('trip.tabs.files'), icon: FolderOpen }] : []), + ...(enabledAddons.memories ? [{ id: 'memories', label: t('memories.title'), icon: Camera }] : []), + ...(enabledAddons.collab ? [{ id: 'collab', label: t('admin.addons.catalog.collab.name'), icon: Users }] : []), ] const [activeTab, setActiveTab] = useState(() => { @@ -516,10 +516,12 @@ export default function TripPlannerPage(): React.ReactElement | null { }}> {TRIP_TABS.map(tab => { const isActive = activeTab === tab.id + const TabIcon = tab.icon return ( + > + {TabIcon && <>} + {tab.shortLabel || tab.label} + ) })}