Use the reviewed order detail contract
Driver App order detail is a stateful composition, not a passive record page. Mounting it can read order or assignment data, related business and message data, join realtime state, follow location and prepare conditional controls before the Driver selects an action.
This public contract defines responsibility and safe display only. It does not certify data currentness, group/logistics reachability, action eligibility, provider completion or deployed behavior.
Availability
Registered authenticated entry can come from an order card, history, logistics request, in-app navigation or supported opened-notification target. Ordinary, grouped and logistics detail shapes differ. A logistics-group render branch exists, but productive entry with every required group property is not proven portable.
Prerequisites
- Authenticated Driver scope and a registered route with validated input.
- Current order/assignment authorization on every read and mutation.
- Synthetic/redacted display fixtures for all PII, payment and custom fields.
- Explicit lifecycle cleanup for reads, sockets, location, messages and assets.
- Separate task contracts for every contact, map, message, review, assignment, status, media, PIN, proof or provider action.
Responsibility boundaries
| Boundary | Responsibility | Limit |
|---|---|---|
| Route wrapper | Supply order/reference/assignment and Driver permission/action adapters. | Route visibility is not authorization. |
| Detail controller | Load order/assignment, business, messages and related data; manage realtime/location state. | Mount is effectful and partial. |
| Header | Present reference/status/type/payment/time/priority and navigation/action icons. | Presentation is not currentness or settlement. |
| Content | Present custom, business/customer, products/comments, bill/payment, spot/vehicle fields. | Dense PII/financial data; no correctness/share claim. |
| Group/logistics | Render members/assignment-specific state when shape supports it. | Member state/actions are not atomic or portable. |
| Conditional controls | Expose task intent from status/config/permission/read state. | Visibility is not eligibility or success. |
| API | Authorize reads/mutations and own writes/follow-ons. | Running artifact relation remains unconfirmed. |
Inputs and result
| Input/state | Client result | Limit |
|---|---|---|
| Order object supplied | Can render immediately then run related effects. | Supplied object can be stale/partial. |
| Order reference supplied | Fetch loading/content/error. | Response/currentness/deployment unproven. |
| Assignment reference | Assignment/detail read then shared detail shape. | Ownership/expiry/lock separate. |
| Business/customer/custom/product/bill arrays | Conditional sections/accordions/lines. | PII/payment correctness unproven. |
| Socket/location/message state | Later detail updates/indicators/controls. | Ordering/freshness/cleanup unproven. |
| Status/config/permission | Conditional task controls. | Server transition graph not established. |
Security and privacy
- Minimize access to identity, contact, address, coordinates, custom fields, order comments, products, payment, messages, PIN, proof and media.
- Never copy/log/screenshot/share real detail data in diagnostics.
- Keep contact/map/clipboard/native handoffs disabled in evidence harnesses.
- Bind late read/socket/location results to current order/account generation.
Limits and failure states
| State | Meaning | Maintainer response |
|---|---|---|
| Loading/error | Mount reads unsettled/failed. | No action. |
| Supplied stale object | Immediate presentation before refresh. | Do not call current. |
| Group/logistics shape partial | Branch may omit/misroute member data. | Keep portable claim blocked. |
| Header/body/realtime divergence | Inputs settled at different times. | Stop actions and reconcile. |
| Conditional control visible | Client rule passed. | Server eligibility separate. |
| Provider/Linking/clipboard control | External/local handoff. | Completion and privacy separate. |
Troubleshooting
Diagnose route input, read ownership, generation, mount effects and visible state separately. Never open real contact/map/message/status controls to verify detail. Use synthetic ordinary/group/logistics/empty/error fixtures and an effect ledger.
Re-review whenever route inputs, mount reads, socket/location/message lifecycle, field schemas, group/logistics shape, bill/payment display or action visibility changes.
Related guides: Order details · Active delivery · Delivery history · Communication contract · Maps contract · Order mutation contract