diff --git a/src/components/admin/logistics/hotels-tab.tsx b/src/components/admin/logistics/hotels-tab.tsx index c82ad08..47394c1 100644 --- a/src/components/admin/logistics/hotels-tab.tsx +++ b/src/components/admin/logistics/hotels-tab.tsx @@ -38,6 +38,10 @@ import { } from '@/components/ui/select' import { Download, ExternalLink, Hotel as HotelIcon, Loader2, Plus, Trash2, Pencil } from 'lucide-react' +// Radix forbids an empty-string value, so the "unassigned" option +// uses this sentinel; handleHotelChange maps it back to an unassign. +const UNASSIGN_VALUE = '__unassign__' + interface Props { programId: string } @@ -439,7 +443,7 @@ function AttendeeRoomRow({ const currentHotelId = row.stay?.hotelId ?? '' const handleHotelChange = (value: string) => { - if (!value) { + if (!value || value === UNASSIGN_VALUE) { unassignMutation.mutate({ attendingMemberId: row.attendingMemberId }) } else { assignMutation.mutate({ @@ -506,7 +510,7 @@ function AttendeeRoomRow({ - — Unassigned — + — Unassigned — {hotels.map((h) => ( {h.name}