mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
fix: poa email
This commit is contained in:
@@ -41,6 +41,22 @@ export default function PoaStep({
|
||||
formState: { errors },
|
||||
} = form;
|
||||
|
||||
// Fayda's email/phone/address claims are optional and routinely come back
|
||||
// empty, so a *verified* representative can still be missing the email and
|
||||
// phone the API demands from a freight forwarder (`REQUIRED_POA_FIELDS`) —
|
||||
// and the panel above renders no input for them, which dead-ends the step on
|
||||
// "Add the poa email first". Offer an input for whatever the verification
|
||||
// did not supply: the API keeps exactly those keys typeable, since a claim
|
||||
// that returned nothing owns no value to protect (`faydaOwnedKeys`).
|
||||
const poa = identity?.poa;
|
||||
// Where Fayda is mandatory an unverified representative must verify rather
|
||||
// than be typed, so nothing is offered until the verification lands.
|
||||
const typedAllowed = !identity || poa!.verified || !identity.faydaRequired;
|
||||
const missing = (value: string | null | undefined) =>
|
||||
typedAllowed && !value?.trim();
|
||||
const needsEmail = missing(poa?.email);
|
||||
const needsPhone = missing(poa?.phone);
|
||||
|
||||
return (
|
||||
<>
|
||||
<Text size="sm" c="edr-muted">
|
||||
@@ -60,24 +76,19 @@ export default function PoaStep({
|
||||
required={requirePoa}
|
||||
/>
|
||||
)}
|
||||
{/* A verified representative's details come from the Fayda claim
|
||||
and are shown on the panel above. Where Fayda cannot be
|
||||
required — a foreign company whose representative may hold no
|
||||
Fayda ID — they are typed here instead. They have to be: the
|
||||
API refuses to save a freight forwarder's PoA without a name,
|
||||
email and phone (`REQUIRED_POA_FIELDS`), and before this the
|
||||
step rendered no input for any of them, so the customer was
|
||||
told to "add the poa name, poa email, poa phone" with nowhere
|
||||
to add them. */}
|
||||
{!identity?.poa.verified && !identity?.faydaRequired && (
|
||||
<>
|
||||
<TextInput
|
||||
label="Representative's Name"
|
||||
placeholder="Abebe Bikila"
|
||||
error={errors.poaName?.message}
|
||||
{...register("poaName")}
|
||||
/>
|
||||
<SimpleGrid cols={2} spacing="md">
|
||||
{/* Whatever the Fayda claim did carry is shown on the panel above and
|
||||
is never typed here — the verification owns it. */}
|
||||
{missing(poa?.name) && (
|
||||
<TextInput
|
||||
label="Representative's Name"
|
||||
placeholder="Abebe Bikila"
|
||||
error={errors.poaName?.message}
|
||||
{...register("poaName")}
|
||||
/>
|
||||
)}
|
||||
{(needsEmail || needsPhone) && (
|
||||
<SimpleGrid cols={needsEmail && needsPhone ? 2 : 1} spacing="md">
|
||||
{needsEmail && (
|
||||
<TextInput
|
||||
label="Representative's Email"
|
||||
type="email"
|
||||
@@ -85,19 +96,23 @@ export default function PoaStep({
|
||||
error={errors.poaEmail?.message}
|
||||
{...register("poaEmail")}
|
||||
/>
|
||||
)}
|
||||
{needsPhone && (
|
||||
<ControlledPhoneField
|
||||
control={control}
|
||||
name="poaPhone"
|
||||
label="Representative's Phone"
|
||||
/>
|
||||
</SimpleGrid>
|
||||
<TextInput
|
||||
label="PoA Location"
|
||||
placeholder="City, Country"
|
||||
error={errors.poaLocation?.message}
|
||||
{...register("poaLocation")}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</SimpleGrid>
|
||||
)}
|
||||
{missing(poa?.address) && (
|
||||
<TextInput
|
||||
label="PoA Location"
|
||||
placeholder="City, Country"
|
||||
error={errors.poaLocation?.message}
|
||||
{...register("poaLocation")}
|
||||
/>
|
||||
)}
|
||||
|
||||
{/* The paper authorises the representative, so it shows once one
|
||||
|
||||
Reference in New Issue
Block a user