mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-18 21:16:47 +00:00
fix(roadtrip): the booking a terminal opens has somewhere to open
The day panel owns the transport detail dialog, and in road trip mode the day panel is not mounted: a terminal row, a ride pill and a map endpoint all set the booking to show and nothing showed it. The rail brings the dialog along now. Also drops a translation key nothing read.
This commit is contained in:
@@ -10,6 +10,7 @@ import { TripRouteOverviewPill, TripRouteOverviewPanel } from '../components/Map
|
||||
import { DawarichTrailPill } from '../components/Map/DawarichTrailPill'
|
||||
import { getCached, fetchPhoto } from '../services/photoService'
|
||||
import DayPlanSidebar from '../components/Planner/DayPlanSidebar'
|
||||
import { DayPlanSidebarTransportDetailModal } from '../components/Planner/DayPlanSidebarTransportDetailModal'
|
||||
import RoadtripModeSwitch from '../components/Roadtrip/RoadtripModeSwitch'
|
||||
import TripLoadingSplash from '../components/shared/TripLoadingSplash'
|
||||
import PlacesSidebar from '../components/Planner/PlacesSidebar'
|
||||
@@ -254,7 +255,7 @@ function TripPlannerPageDesktop(): React.ReactElement | null {
|
||||
// Page = wiring container: the entire planner state machine (store, tabs,
|
||||
// selection, CRUD handlers with undo, map filters, splash) lives in the hook.
|
||||
const {
|
||||
tripId, navigate, toast, t, language, placesPhotosEnabled,
|
||||
tripId, navigate, toast, t, language, locale, settings, placesPhotosEnabled,
|
||||
trip, days, places, assignments, packingItems, todoItems, categories, reservations, budgetItems, files,
|
||||
selectedDayId, isLoading, tripActions, can, canUploadFiles,
|
||||
pushUndo, undo, canUndo, lastActionLabel, handleUndo,
|
||||
@@ -618,6 +619,18 @@ function TripPlannerPageDesktop(): React.ReactElement | null {
|
||||
collapsedDayIds={collapsedRoadtripDays}
|
||||
onToggleDay={toggleRoadtripDay}
|
||||
/>
|
||||
{/* The booking a terminal, a ride pill or a map endpoint opens. Under
|
||||
Days the day panel owns this dialog; here the day panel is not
|
||||
mounted, so the rail has to bring it along (#2428). */}
|
||||
<DayPlanSidebarTransportDetailModal
|
||||
transportDetail={mapTransportDetail}
|
||||
setTransportDetail={setMapTransportDetail}
|
||||
onNavigateToFiles={() => handleTabChange('dateien')}
|
||||
onEdit={can('day_edit', trip) ? (reservation) => { setMapTransportDetail(null); setEditingTransport(reservation); setTransportModalDayId(reservation.day_id ?? null); setShowTransportModal(true) } : undefined}
|
||||
t={t}
|
||||
locale={locale}
|
||||
timeFormat={settings.time_format || '24h'}
|
||||
/>
|
||||
</LazyPanel>
|
||||
) : (
|
||||
<DayPlanSidebar
|
||||
|
||||
@@ -95,7 +95,7 @@ export function useTripPlanner() {
|
||||
const tripId = id ? Number(id) : Number.NaN
|
||||
const navigate = useNavigate()
|
||||
const toast = useToast()
|
||||
const { t, language } = useTranslation()
|
||||
const { t, language, locale } = useTranslation()
|
||||
const { settings } = useSettingsStore()
|
||||
const roadtripSettings = useRoadtripSettings(s => s, tripId)
|
||||
// trip-page plugins mount as tabs inside this trip planner (tripId-scoped).
|
||||
@@ -2613,7 +2613,7 @@ export function useTripPlanner() {
|
||||
}, [isLoading, trip])
|
||||
|
||||
return {
|
||||
tripId, navigate, toast, t, language, settings, placesPhotosEnabled,
|
||||
tripId, navigate, toast, t, language, locale, settings, placesPhotosEnabled,
|
||||
trip, days, places, assignments, storedAssignments, packingItems, todoItems, categories, reservations, budgetItems, files,
|
||||
selectedDayId, isLoading, tripActions, can, canUploadFiles,
|
||||
pushUndo, undo, canUndo, lastActionLabel, handleUndo,
|
||||
|
||||
@@ -267,6 +267,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'المغادرة {time}',
|
||||
'roadtrip.ride.arrival': 'الوصول {time}',
|
||||
'roadtrip.ride.open': 'فتح الحجز',
|
||||
'roadtrip.ride.beThere': 'الحضور قبل {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -272,6 +272,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Loc\'hañ {time}',
|
||||
'roadtrip.ride.arrival': 'Erruout {time}',
|
||||
'roadtrip.ride.open': 'Digeriñ ar mirout',
|
||||
'roadtrip.ride.beThere': 'Bezañ eno a-raok {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -275,6 +275,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Sortida {time}',
|
||||
'roadtrip.ride.arrival': 'Arribada {time}',
|
||||
'roadtrip.ride.open': 'Obre la reserva',
|
||||
'roadtrip.ride.beThere': 'Sigues-hi abans de les {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -270,6 +270,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Odjezd {time}',
|
||||
'roadtrip.ride.arrival': 'Příjezd {time}',
|
||||
'roadtrip.ride.open': 'Otevřít rezervaci',
|
||||
'roadtrip.ride.beThere': 'Být na místě do {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -269,6 +269,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Abfahrt {time}',
|
||||
'roadtrip.ride.arrival': 'Ankunft {time}',
|
||||
'roadtrip.ride.open': 'Buchung öffnen',
|
||||
'roadtrip.ride.beThere': 'Bis {time} da sein',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -267,6 +267,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Departure {time}',
|
||||
'roadtrip.ride.arrival': 'Arrival {time}',
|
||||
'roadtrip.ride.open': 'Open booking',
|
||||
'roadtrip.ride.beThere': 'Be there by {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -274,6 +274,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Salida {time}',
|
||||
'roadtrip.ride.arrival': 'Llegada {time}',
|
||||
'roadtrip.ride.open': 'Abrir reserva',
|
||||
'roadtrip.ride.beThere': 'Estar allí antes de las {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -274,6 +274,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Départ {time}',
|
||||
'roadtrip.ride.arrival': 'Arrivée {time}',
|
||||
'roadtrip.ride.open': 'Ouvrir la réservation',
|
||||
'roadtrip.ride.beThere': 'Être sur place avant {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -276,6 +276,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Αναχώρηση {time}',
|
||||
'roadtrip.ride.arrival': 'Άφιξη {time}',
|
||||
'roadtrip.ride.open': 'Άνοιγμα κράτησης',
|
||||
'roadtrip.ride.beThere': 'Να είστε εκεί μέχρι τις {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -271,6 +271,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Indulás {time}',
|
||||
'roadtrip.ride.arrival': 'Érkezés {time}',
|
||||
'roadtrip.ride.open': 'Foglalás megnyitása',
|
||||
'roadtrip.ride.beThere': 'Legyél ott {time}-ig',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -274,6 +274,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Berangkat {time}',
|
||||
'roadtrip.ride.arrival': 'Tiba {time}',
|
||||
'roadtrip.ride.open': 'Buka pemesanan',
|
||||
'roadtrip.ride.beThere': 'Sudah di sana sebelum {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -274,6 +274,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Partenza {time}',
|
||||
'roadtrip.ride.arrival': 'Arrivo {time}',
|
||||
'roadtrip.ride.open': 'Apri prenotazione',
|
||||
'roadtrip.ride.beThere': 'Essere lì entro le {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -269,6 +269,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': '出発 {time}',
|
||||
'roadtrip.ride.arrival': '到着 {time}',
|
||||
'roadtrip.ride.open': '予約を開く',
|
||||
'roadtrip.ride.beThere': '{time} までに到着',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -267,6 +267,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': '출발 {time}',
|
||||
'roadtrip.ride.arrival': '도착 {time}',
|
||||
'roadtrip.ride.open': '예약 열기',
|
||||
'roadtrip.ride.beThere': '{time}까지 도착',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -273,6 +273,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Vertrek {time}',
|
||||
'roadtrip.ride.arrival': 'Aankomst {time}',
|
||||
'roadtrip.ride.open': 'Boeking openen',
|
||||
'roadtrip.ride.beThere': 'Uiterlijk om {time} aanwezig zijn',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -271,6 +271,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Odjazd {time}',
|
||||
'roadtrip.ride.arrival': 'Przyjazd {time}',
|
||||
'roadtrip.ride.open': 'Otwórz rezerwację',
|
||||
'roadtrip.ride.beThere': 'Być na miejscu do {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -273,6 +273,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Отправление {time}',
|
||||
'roadtrip.ride.arrival': 'Прибытие {time}',
|
||||
'roadtrip.ride.open': 'Открыть бронирование',
|
||||
'roadtrip.ride.beThere': 'Быть на месте к {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -270,6 +270,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Avgång {time}',
|
||||
'roadtrip.ride.arrival': 'Ankomst {time}',
|
||||
'roadtrip.ride.open': 'Öppna bokning',
|
||||
'roadtrip.ride.beThere': 'Var på plats senast {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -273,6 +273,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Kalkış {time}',
|
||||
'roadtrip.ride.arrival': 'Varış {time}',
|
||||
'roadtrip.ride.open': 'Rezervasyonu aç',
|
||||
'roadtrip.ride.beThere': '{time} itibarıyla orada olun',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -272,6 +272,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Відправлення {time}',
|
||||
'roadtrip.ride.arrival': 'Прибуття {time}',
|
||||
'roadtrip.ride.open': 'Відкрити бронювання',
|
||||
'roadtrip.ride.beThere': 'Бути на місці до {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -271,6 +271,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': 'Khởi hành {time}',
|
||||
'roadtrip.ride.arrival': 'Đến nơi {time}',
|
||||
'roadtrip.ride.open': 'Mở đặt chỗ',
|
||||
'roadtrip.ride.beThere': 'Có mặt trước {time}',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -258,6 +258,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': '出發 {time}',
|
||||
'roadtrip.ride.arrival': '抵達 {time}',
|
||||
'roadtrip.ride.open': '開啟預訂',
|
||||
'roadtrip.ride.beThere': '請於 {time} 前抵達',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
@@ -259,6 +259,5 @@ const roadtrip: TranslationStrings = {
|
||||
'roadtrip.ride.departure': '出发 {time}',
|
||||
'roadtrip.ride.arrival': '到达 {time}',
|
||||
'roadtrip.ride.open': '打开预订',
|
||||
'roadtrip.ride.beThere': '请于 {time} 前到达',
|
||||
};
|
||||
export default roadtrip;
|
||||
|
||||
Reference in New Issue
Block a user