import { Box } from "@mui/material"; import { PageHeader } from "@/components/ui/page-header"; import { QueryErrorPanel } from "@/components/ui/query-error-panel"; import { WorkOrderSlideOver } from "@/app/(protected)/workorders/_components/detail/work-order-slide-over"; import { WorkOrdersAdvancedFiltersBanner } from "@/app/(protected)/workorders/_components/list/work-orders-advanced-filters-banner"; import { WorkOrdersFilterBar } from "@/app/(protected)/workorders/_components/list/filter-bar/work-orders-filter-bar"; import { WorkOrderCancelDialog } from "@/app/(protected)/workorders/_components/list/work-order-cancel-dialog"; import { WorkOrdersListHeader } from "@/app/(protected)/workorders/_components/list/work-orders-list-header"; import { WorkOrdersListOverlays } from "@/app/(protected)/workorders/_components/list/work-orders-list-overlays"; import { WoTable } from "@/app/(protected)/workorders/_components/list/table/wo-table"; import { useWorkOrdersListPage } from "@/app/(protected)/workorders/_hooks/use-work-orders-list-page"; import type { WorkOrderTableRow } from "@/domain/work-orders/types/work-order-table-row"; import { hasCompletionDocService } from "@/domain/work-orders/utils/completion-doc-service-gate"; import { useAuthContext } from "@/providers/auth-context"; export default function WorkOrdersListPage() { const { user } = useAuthContext(); const page = useWorkOrdersListPage(); const { filters, tableData, activeDocRow } = page; const openCompletionDoc = (row: WorkOrderTableRow) => { if (!hasCompletionDocService(row.pm)) return; page.setDocRow(row); }; return ( filters.setAdvOpen(true)} onNewWorkOrder={() => page.setWizardOpen(true)} activeFilterCount={filters.activeFilterCount} isFetching={tableData.isFetching && !tableData.isLoading} /> } /> {filters.advApplied != null && ( )} {Boolean(tableData.error) && ( void tableData.refetch()} /> )} filters.handleSearchChange("")} onOpenAdvancedFilters={() => filters.setAdvOpen(true)} onPatch={page.patchField} /> { if (!open) page.setDocRow(null); }} completionDocs={page.completionDocs} onSaveCompDoc={async (data, status) => { if (!activeDocRow) return; await page.saveCompletionDoc(activeDocRow, data, status); }} onDateCompletedChange={async (date) => { if (!activeDocRow) return; await page.patchFieldAsync(activeDocRow.id, { completedDate: date }); }} activeMediaRow={page.activeMediaRow} onMediaOpenChange={(open) => { if (!open) page.setMediaRow(null); }} /> page.handleOpenSlideOver(existing, false)} saving={page.isPatchPending} onClose={page.handleCloseSlideOver} /> page.setConfirmCancel(null)} onConfirm={page.handleConfirmCancel} /> ); }