import { useParams } from "react-router"; import { Alert, Box, CircularProgress } from "@mui/material"; import { DispatchCreateModal } from "./_components/dispatch-create-modal"; import { DispatchDetailModal } from "./_components/dispatch-detail-modal"; import { WorkOrderActivityPanel } from "./_components/view/work-order-activity-panel"; import { WorkOrderDispatchesAccordion } from "./_components/view/work-order-dispatches-accordion"; import { WorkOrderVendorEditorDialog } from "./_components/view/work-order-vendor-editor-dialog"; import { WorkOrderViewAccordions } from "./_components/view/work-order-view-accordions"; import { WorkOrderViewDetails } from "./_components/view/work-order-view-details"; import { WorkOrderViewHeader } from "./_components/view/work-order-view-header"; import { useWorkOrderViewPage } from "./_hooks/use-work-order-view-page"; export default function WorkOrderViewPage() { const { id } = useParams(); const workOrderId = id ?? ""; const view = useWorkOrderViewPage(workOrderId); if (view.isLoading) { return ( ); } if (view.error || !view.wo) { return ( {view.error instanceof Error ? view.error.message : "Work order not found."} ); } return ( view.statusMutation.mutate(status)} onOpenDispatch={() => view.setDispatchOpen(true)} /> view.assignmentMutation.mutate({ userId, userName })} onUnassign={() => view.assignmentMutation.mutate({ userId: "", userName: "" })} /> {view.dispatchOpen && ( view.setDispatchOpen(false)} onDispatched={() => void view.refetch()} /> )} {view.dispatchDetailId != null && ( view.setDispatchDetailId(null)} onUpdated={() => void view.refetch()} /> )} { if (!view.vendorMutation.isPending) view.setVendorEditor(null); }} onSave={view.saveVendorEditor} onEditorChange={view.setVendorEditor} /> ); }