Skip to main content

Add and view chat media

Order chat can display returned images and contains controls for choosing a photo or drawing a signature. Document-picker code also exists, but it is not wired into the rendered chat or send payload. This reference is viewing and pre-action only: it stops before opening a picker, drawing, selecting media, or sending.

:::warning Chat media is private and sending is authorization-blocked

Images and signatures can contain customer, address, order, identity, or proof data. Media-write authorization and rollback are under security review, so sending is excluded. Media, message, socket, notification, and provider effects can settle separately. Do not capture, attach, send, retry, or use real media while following this guide.

:::

Availability

For an active order conversation, the composer can show:

Control or contentCurrent-source boundary
Image iconOpens the device photo library; it is not a camera control
Pen iconOpens/closes an embedded signature canvas
Local thumbnailShows the selected photo URI before send
Remove controlClears local image/file preview state
Returned image bubbleRenders a returned message source through the chat image component
Document attachmentHandler/state exists, but the action is not wired into the rendered Chat and the file is not included in the send body

When the order is in an ended state, Driver App replaces the composer with You can't send messages because the order has ended. Returned history/media can remain visible.

Opening chat can start message/order reads, a read-receipt request, socket work, and remote-media loads. Viewing is not a passive runtime test.

State and result matrix

StateSafe interpretation
No media controlComposer is disabled, order ended, render path omitted, or current UI differs
Image icon visiblePhoto-library selection is available as a pre-action control
Photo library opensAn external device/provider surface opened; no image is selected
Local image thumbnailA local candidate is held in App state; no upload or message exists
Thumbnail removedLocal candidate state was cleared; provider/file cleanup is not proved
Signature canvas visibleLocal drawing surface is active; no signature value or message exists
Signature drawing completedCanvas callback can place a data candidate into image state; no upload/storage exists
Document icon/stateSource definition only in accepted render; no productive visible/document-send path
Returned image bubbleMessage source was passed to an image renderer; authorization, safety, storage, availability, and delivery are not proved
Broken/blank remote imageProvider/network/scheme/render failed or source is absent; no record conclusion follows
Preview disappears after SendClient cleared local state immediately; server acceptance and delivery remain unresolved

Image, signature, and document boundaries

Image

The visible image control uses the photo library with image-only selection and can create a local media candidate plus preview. The accepted chat implementation has no camera-capture path. Native camera declarations or tutorial language do not create a chat camera feature.

Signature

The pen control toggles an embedded canvas. When drawing ends, the canvas can read a signature and store it in the same image state used for photo media. A drawn signature is sensitive media; canvas visibility or completion is not upload, message, proof, consent, or secure storage.

Document

Document-picker definitions can store a local URI, type, name, and size. The accepted Chat render does not connect that action, and the message body only sends text or the shared image state. A document name/icon/state is not evidence of transmission.

Viewing boundaries

  • Review only media already visible in an authorized order conversation.
  • Do not open photo/document pickers or the signature canvas as part of this reference.
  • Do not infer that a returned image is safe, current, malware-scanned, authorized for the current Driver, or stored by the running service.
  • Do not use chat media as proof of pickup, delivery, identity, customer consent, read receipt, or order completion.
  • Do not select Send or retry when a preview/message outcome is unresolved.

Effects and boundaries

Image or signature send uses the message-write path with media type and file data. Authorization, media, message, socket, notification, and provider settlement are separate and remain blocked from a public procedure.

The client clears local image, preview, file, text, and signature state immediately after invoking send; it does not await confirmed persistence before clearing. Preview disappearance is therefore not a send receipt.

Remote message sources can cause image-provider/network requests when rendered. Local/bundled evidence and rejected remote schemes are the only admitted future capture boundary; no real remote media is safe for documentation runtime.

Troubleshooting

There is no camera option

The current chat image control opens the photo library. Chat camera capture is not implemented by the accepted source. Do not use another status-image or profile camera flow as a substitute.

The document attachment control is missing

The document handler is not wired into the rendered chat and its file state is not included in the send payload. Do not force a picker or claim document support.

A local preview disappears

Do not assume upload or delivery. The client clears preview state immediately after send intent. Ask the operator to verify the authorized conversation; do not resend the media.

A returned image does not load

Remote scheme, provider, network, source, access, or rendering can fail. Do not copy the URL or open it outside Driver App. Report the missing media without order/customer identifiers.

Media controls are disabled because the order ended

History can remain viewable while composition is unavailable. Do not bypass the ended-order state through another conversation or provider.

Related guides: Use order chat · View order conversations · Understand an active delivery · Understand Driver permissions