Skip to content

feat: Distinguish Start and End Delivery Times #211

Description

@kirillakovalenko

Description

In the confirmed (locked) address card, the delivery time window renders as a bare time string when only one bound is set:

{a.deliveryTimeStart && a.deliveryTimeEnd
  ? `${a.deliveryTimeStart} – ${a.deliveryTimeEnd}`
  : a.deliveryTimeStart || a.deliveryTimeEnd || "—"}

So a card with only a start time and a card with only an end time both display the same thing (e.g. 9:00 a.m.). After confirming a delivery, a user scanning the list can't tell whether that time is the earliest the delivery can arrive or the latest — they're visually identical. This appears in both the desktop and mobile locked views in AddressCard.tsx (desktop ~L328-330, mobile ~L695-697).

Goal

Make a single-bounded delivery time window visually distinguishable as a start time vs. an end time in the confirmed/locked address card by labeling it From 9:00 a.m. (start only) or By 9:00 a.m. (end only).

Scope

In scope

  • Update the locked delivery-time rendering so:
    • start + end → 9:00 a.m. – 11:00 a.m. (unchanged)
    • start only → From 9:00 a.m.
    • end only → By 9:00 a.m.
    • neither → (unchanged)
  • Apply the change consistently to both the desktop and mobile locked views.

Out of scope

  • The editable (unlocked) selects — they already label each dropdown "Start"/"End".
  • Validation or constraint logic between start and end times.
  • Any change to the saved data model / time options.

Acceptance Criteria

  • A confirmed card with only a start time shows From <time> and one with only an end time shows By <time>.
  • A fully-bounded window (start – end) and a fully-empty window () render as before.
  • Both desktop and mobile locked views show the same labeling.
  • Tests covering the locked delivery-time rendering are updated/added for the start-only (From) and end-only (By) cases.

Assignee

@Gill87

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions