/* global window, React */
// ============================================================
// Confirm modal — choose fleet/carrier to confirm trip with
// ============================================================
const { useState: useConfirmState } = React;
function ConfirmModal({ trip, onCancel, onConfirm }) {
const recommended = trip.fleetOptions.find(o => o.recommended);
const [pick, setPick] = useConfirmState(recommended ? trip.fleetOptions.indexOf(recommended) : 0);
const fleetPillKind = {
private: 'green', dedicated: 'amber', market: 'blue', spot: 'red',
};
return (
e.stopPropagation()}>
Confirm trip · {trip.id}
{trip.route.from} → {trip.route.to}
Confirming will fire status CONFIRMED ,
send load instructions to WMS pick queue, and trigger {' '}
{trip.fleetOptions[pick]?.kind === 'private'
? DAE for driver assignment.
: tender to {trip.fleetOptions[pick]?.name || 'carrier'}. }
Choose fleet · carrier
Agent recommends the green-flagged option
{trip.fleetOptions.map((opt, i) => {
const isSelected = pick === i;
const isDisabled = opt.unavailable;
return (
!isDisabled && setPick(i)}
>
{
{ private: 'Private', dedicated: 'Dedicated', market: 'Market', spot: 'Spot' }[opt.kind]
}
{opt.name}
{opt.meta.map(([k, v]) => `${k}: ${v}`).join(' · ')}
{opt.note && (
{opt.note.text}
)}
{opt.recommended &&
RECOMMENDED }
);
})}
{/* Agent rationale */}
TP
Agent: {trip.fleetSummary}
Cancel
onConfirm(trip.fleetOptions[pick])}
>
✓ Confirm with {trip.fleetOptions[pick]?.name || 'selected'}
);
}
Object.assign(window, { ConfirmModal });