Show report send status in the mobile app

Objective

  • Let inspectors see whether report-delivery emails (and other action-flow sends tied to reports) actually went out, inside the mobile app, without opening the web work order activity feed.
  • Reduce guesswork when multiple reports ship over time (e.g. ancillary results after the first publish)—published order state alone is not a reliable signal for “this email left Attik.”

Background

  • May 14 NE Region / RJ discussion (Tiffany): Inspectors were unclear how to tell if a report had really been sent after upload.
  • Ryan: That status is not visible in the app today—they have to use web and the work order activity feed.
  • Adam: Inspectors should see send outcome in-app so they know the report went out.
  • Ryan: Especially useful because today they may infer first delivery only from order state → published, which breaks down when additional reports are delivered later.

Scope

Mobile (attik-mobile)

  • components/inspection/ReportsSection.tsx — primary reports surface on the inspection detail flow; today useInspectionReports hits GET inspection/:id/reports (hooks/useInspectionReports.ts, lib/services/reportsService.ts) and mutations in useReportMutationsno send / email / activity timeline is surfaced there today.
  • app/(app)/inspection/[id].tsx and related inspection screens — Decision needed where send status appears (per report row, banner, or dedicated “Deliveries” subsection).
  • Decision needed: offline / stale-data copy when the device cannot reach the API.

Backend

  • attik-backend/src/routes/activity.tsGET /activity supports inspectionId (plus pagination); returns aggregated Activity docs with employee stages—likely the same source of truth the web ActivityFeed consumes for send lines.
  • attik-backend/src/models/activitySchema.ts (and activity stream writers under attik-backend/src/util/functions/activity/) — define what event types exist for report email / action flow sends; Decision needed which activity kinds the mobile UI should filter to avoid noise.

Frontend web (parity / contract reference only)

  • attik-frontend/src/components/activityFeed/ActivityFeed.tsx and attik-frontend/src/app/tools/inspections/[id]/components/InspectionActivityFeed.tsx — today’s canonical UX for “did it send?”; mobile should not re-implement all blocks unless product asks—Decision needed minimum viable subset (e.g. last N email / action-flow rows with timestamps and status).

References

  • attik-mobile/components/inspection/ReportsSection.tsx
  • attik-mobile/hooks/useInspectionReports.ts
  • attik-backend/src/routes/activity.ts
  • attik-frontend/src/components/activityFeed/ActivityFeed.tsx
  • attik-frontend/src/app/tools/inspections/[id]/components/InspectionActivityFeed.tsx

Please authenticate to join the conversation.

Upvoters
Status

Planned

Board
🏠

Main App

Date

15 days ago

Author

Linear

Subscribe to post

Get notified by email when there are changes.