site-visits-panel

Notes

  • 2026-10-05 (entirely-portal 98cdcee, built + served 07:28 ET): the project page’s SITE VISITS section (src/components/project-detail/SiteVisitsPanel.tsx) lets up_owner/up_admin reassign a visit’s inspector from the row — the Inspector cell is a dashed-underline picker (techs from GET /portal/scheduling/techs, first-name fallback the API resolves; current option by SiteVisit.inspector_id, new on the detail payload, else first-name prefix) → window.confirm naming Slack field → PATCH /portal/projects/{id}/site-visits/{visit_id} {assigned_tech} → a status line under the row from src/lib/visitReassign.ts reassignSummary: “Reassigned to Dustin Thacker. Both inspectors notified in field (today’s route re-posted, 3 stops).” / tomorrow preview / notice posted / fallback route / told a moment ago / “No field notice: visit is completed.” / failed notice flagged. Never silent because the API posts to Slack on the write. Tests: src/lib/tests/visitReassign.test.ts (10), src/components/tests/SiteVisitsPanel.reassign.test.tsx (6). Earlier panel history: inline type/status edits, Cancel… dialog (2026-09-20 pricing), $ billing flags.

Connections