Skip to content
Latch

Component

ConfirmCard

A consequential action is a review, not a button.

Summary rows, included checks, and a compact trailing action. The confirmed state stays in the transcript.

Hold the Lisbon rooms

Where
Lisbon
When
12–16 May
People
12
Plan
€9,420
  • Refundable until 1 May
  • Names stay with you until you confirm

Do

  • Show the facts that would change the decision.
  • Keep the action a short verb, trailing and compact.
  • Leave a confirmed state the person can still read.

Don't

  • Ask a new question inside the card.
  • Use it for something the agent can undo quietly.
  • Hide the handler or the total.

Props

PropTypeDescription
titlestringWhat the person is about to authorize.
rowsSummaryRow[]Label and value pairs. Put the decision-changing facts here.
checksstring[]Facts already true, shown as chips, not as tasks.
actionLabelstringShort verb. Defaults to Confirm.
stateLatchStateidle, loading, needs-input, confirmed, error, or rerouted.
acknowledgementstringOptional line the person must check before the action enables.
onConfirm() => voidFires when the person confirms.

A2UI message

v0.9.1 envelope. catalogId is latch://catalog/v1. The preview under the message is rendered by the adapter, not hand-built.

JSON

[
  {
    "version": "v0.9.1",
    "createSurface": {
      "surfaceId": "hold",
      "catalogId": "latch://catalog/v1",
      "theme": {
        "agentDisplayName": "Travel"
      }
    }
  },
  {
    "version": "v0.9.1",
    "updateComponents": {
      "surfaceId": "hold",
      "components": [
        {
          "id": "root",
          "component": "ConfirmCard",
          "title": "Hold the Lisbon rooms",
          "rows": [
            {
              "label": "Where",
              "value": "Lisbon"
            },
            {
              "label": "When",
              "value": "12–16 May"
            },
            {
              "label": "People",
              "value": "12"
            },
            {
              "label": "Plan",
              "value": "€9,420"
            }
          ],
          "checks": [
            "Refundable until 1 May",
            "Names stay with you until you confirm"
          ],
          "actionLabel": "Confirm hold",
          "state": "idle",
          "action": {
            "event": {
              "name": "confirm_hold"
            }
          }
        }
      ]
    }
  }
]

Travel

Hold the Lisbon rooms

Where
Lisbon
When
12–16 May
People
12
Plan
€9,420
  • Refundable until 1 May
  • Names stay with you until you confirm