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 content | Current-source boundary |
|---|---|
| Image icon | Opens the device photo library; it is not a camera control |
| Pen icon | Opens/closes an embedded signature canvas |
| Local thumbnail | Shows the selected photo URI before send |
| Remove control | Clears local image/file preview state |
| Returned image bubble | Renders a returned message source through the chat image component |
| Document attachment | Handler/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
| State | Safe interpretation |
|---|---|
| No media control | Composer is disabled, order ended, render path omitted, or current UI differs |
| Image icon visible | Photo-library selection is available as a pre-action control |
| Photo library opens | An external device/provider surface opened; no image is selected |
| Local image thumbnail | A local candidate is held in App state; no upload or message exists |
| Thumbnail removed | Local candidate state was cleared; provider/file cleanup is not proved |
| Signature canvas visible | Local drawing surface is active; no signature value or message exists |
| Signature drawing completed | Canvas callback can place a data candidate into image state; no upload/storage exists |
| Document icon/state | Source definition only in accepted render; no productive visible/document-send path |
| Returned image bubble | Message source was passed to an image renderer; authorization, safety, storage, availability, and delivery are not proved |
| Broken/blank remote image | Provider/network/scheme/render failed or source is absent; no record conclusion follows |
| Preview disappears after Send | Client 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