in support-frontend/assets/pages/paper-subscription-checkout/components/deliveryAgentsSelect.tsx [42:116]
export function DeliveryAgentsSelect(
props: DeliveryAgentsSelectProps,
): JSX.Element | null {
const postcodeError = firstError('postCode', props.deliveryAddressErrors);
if (postcodeError ?? !props.deliveryAgentsResponse) {
return null;
}
switch (props.deliveryAgentsResponse.type) {
case 'Covered': {
if (props.deliveryAgentsResponse.agents?.length === 1) {
if (!props.deliveryAgentsResponse.agents[0]) {
return null;
}
return (
<SingleDeliveryProvider
singleDeliveryProvider={props.deliveryAgentsResponse.agents[0]}
/>
);
}
return (
<RadioGroup
label="Select delivery provider"
id="delivery-provider"
cssOverrides={marginBottom}
error={firstError('deliveryProvider', props.formErrors)}
>
<>
{props.deliveryAgentsResponse.agents?.map((agent) => (
<div
css={css`
border-bottom: 1px solid ${palette.neutral[86]};
`}
key={agent.agentId}
>
<Radio
value={agent.agentId}
checked={props.chosenDeliveryAgent === agent.agentId}
onChange={() => props.setDeliveryAgent(agent.agentId)}
label={
<>
{agent.agentName}{' '}
<GreenLabel deliveryMethod={agent.deliveryMethod} />
</>
}
/>
<DeliveryProviderSummary summary={agent.summary} />
<GreenDeliverySummary deliveryMethod={agent.deliveryMethod} />
</div>
))}
</>
</RadioGroup>
);
}
case 'UnknownPostcode':
return ErrorMessage(
'Unknown postcode',
'Please check that you have entered your postcode correctly',
);
case 'NotCovered':
return ErrorMessage(
'Not covered',
'Sorry, we do not deliver to this postcode. Please check that you have entered your postcode correctly or contact us for further assistance.',
);
default:
return ErrorMessage(
'Error fetching delivery agents',
'Sorry an error occurred fetching delivery agents, please try again later.',
);
}
return null;
}