import { Box } from "@mui/material"; import { PageHeader } from "@/components/ui/page-header"; import { QueryErrorPanel } from "@/components/ui/query-error-panel"; import { CompDocDialog } from "@/app/(protected)/workorders/_components/comp-doc/comp-doc-dialog"; import { WorkOrderSlideOver } from "@/app/(protected)/workorders/_components/detail/work-order-slide-over"; import { MediaUploadModal } from "@/app/(protected)/workorders/_components/media/media-upload-modal"; import { WorkOrdersAdvancedSearchSheet } from "@/app/(protected)/workorders/_components/list/advanced-search/work-orders-advanced-search-sheet"; 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 { WorkOrdersListHeader } from "@/app/(protected)/workorders/_components/list/work-orders-list-header"; import { WorkOrderCancelDialog } from "@/app/(protected)/workorders/_components/list/work-order-cancel-dialog"; import { WoTable } from "@/app/(protected)/workorders/_components/list/table/wo-table"; import { NewWoWizard } from "@/app/(protected)/workorders/_components/wizard/new-wo-wizard"; import { useWorkOrdersListPage } from "@/app/(protected)/workorders/_hooks/use-work-orders-list-page"; import { useAuthContext } from "@/providers/auth-context"; export default function WorkOrdersListPage() { const { user } = useAuthContext(); const page = useWorkOrdersListPage(); const { filters, tableData, activeDocRow } = page; 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} /> page.patchField(id, patch, options)} onOpenCompletionDoc={page.setDocRow} onCancelWO={page.setConfirmCancel} onDuplicateFound={(existing) => page.handleOpenSlideOver(existing, false)} saving={page.isPatchPending} onClose={page.handleCloseSlideOver} /> page.setConfirmCancel(null)} onConfirm={page.handleConfirmCancel} /> {page.activeMediaRow != null && ( { if (!open) page.setMediaRow(null); }} /> )} {activeDocRow != null && ( { if (!open) page.setDocRow(null); }} data={page.completionDocs[String(activeDocRow.id)]} onSave={(data, status) => page.saveCompletionDoc(activeDocRow, data, status)} onDateCompletedChange={async (date) => { await page.patchFieldAsync(activeDocRow.id, { completedDate: date }); }} /> )} ); }