From 4ba6005ca327ba0169a828e7f0dfb946af5eebe7 Mon Sep 17 00:00:00 2001 From: Maurice Date: Mon, 6 Apr 2026 12:56:54 +0200 Subject: [PATCH 1/2] fix(dayplan): resolve duplicate reservation display, date off-by-one, and missing day_id on edit - Exclude place-assigned reservations from timeline to prevent duplicate display - Use selected day's date instead of today when entering time without date - Pass day_id when updating reservations, not only when creating --- client/src/components/Planner/DayPlanSidebar.tsx | 2 ++ client/src/components/Planner/ReservationModal.tsx | 3 ++- client/src/pages/TripPlannerPage.tsx | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/client/src/components/Planner/DayPlanSidebar.tsx b/client/src/components/Planner/DayPlanSidebar.tsx index 5393ec9e..03520021 100644 --- a/client/src/components/Planner/DayPlanSidebar.tsx +++ b/client/src/components/Planner/DayPlanSidebar.tsx @@ -248,8 +248,10 @@ const DayPlanSidebar = React.memo(function DayPlanSidebar({ const getTransportForDay = (dayId: number) => { const day = days.find(d => d.id === dayId) if (!day?.date) return [] + const dayAssignmentIds = (assignments[String(dayId)] || []).map(a => a.id) return reservations.filter(r => { if (!r.reservation_time || r.type === 'hotel') return false + if (r.assignment_id && dayAssignmentIds.includes(r.assignment_id)) return false const startDate = r.reservation_time.split('T')[0] const endDate = getEndDate(r) diff --git a/client/src/components/Planner/ReservationModal.tsx b/client/src/components/Planner/ReservationModal.tsx index cbbfba68..461d7006 100644 --- a/client/src/components/Planner/ReservationModal.tsx +++ b/client/src/components/Planner/ReservationModal.tsx @@ -385,7 +385,8 @@ export function ReservationModal({ isOpen, onClose, onSave, reservation, days, p value={(() => { const [, t] = (form.reservation_time || '').split('T'); return t || '' })()} onChange={t => { const [d] = (form.reservation_time || '').split('T') - const date = d || new Date().toISOString().split('T')[0] + const selectedDay = days.find(dy => dy.id === selectedDayId) + const date = d || selectedDay?.date || new Date().toISOString().split('T')[0] set('reservation_time', t ? `${date}T${t}` : date) }} /> diff --git a/client/src/pages/TripPlannerPage.tsx b/client/src/pages/TripPlannerPage.tsx index d2c0c2a3..365131ee 100644 --- a/client/src/pages/TripPlannerPage.tsx +++ b/client/src/pages/TripPlannerPage.tsx @@ -431,7 +431,7 @@ export default function TripPlannerPage(): React.ReactElement | null { const handleSaveReservation = async (data) => { try { if (editingReservation) { - const r = await tripActions.updateReservation(tripId, editingReservation.id, data) + const r = await tripActions.updateReservation(tripId, editingReservation.id, { ...data, day_id: selectedDayId || null }) toast.success(t('trip.toast.reservationUpdated')) setShowReservationModal(false) if (data.type === 'hotel') { From a6ea73eab66492409a73f0613a02107eadc833e2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 6 Apr 2026 10:57:06 +0000 Subject: [PATCH 2/2] chore: bump version to 2.9.10 [skip ci] --- client/package-lock.json | 4 ++-- client/package.json | 2 +- server/package-lock.json | 4 ++-- server/package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index 5a2810af..1c887e99 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -1,12 +1,12 @@ { "name": "trek-client", - "version": "2.9.9", + "version": "2.9.10", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trek-client", - "version": "2.9.9", + "version": "2.9.10", "dependencies": { "@react-pdf/renderer": "^4.3.2", "axios": "^1.6.7", diff --git a/client/package.json b/client/package.json index cd2fe60b..35d9aa3f 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "trek-client", - "version": "2.9.9", + "version": "2.9.10", "private": true, "type": "module", "scripts": { diff --git a/server/package-lock.json b/server/package-lock.json index fc181f95..2b9e4e51 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,12 +1,12 @@ { "name": "trek-server", - "version": "2.9.9", + "version": "2.9.10", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trek-server", - "version": "2.9.9", + "version": "2.9.10", "dependencies": { "@modelcontextprotocol/sdk": "^1.28.0", "archiver": "^6.0.1", diff --git a/server/package.json b/server/package.json index 35ba970d..43cc73fc 100644 --- a/server/package.json +++ b/server/package.json @@ -1,6 +1,6 @@ { "name": "trek-server", - "version": "2.9.9", + "version": "2.9.10", "main": "src/index.ts", "scripts": { "start": "node --import tsx src/index.ts",