import { OPERATOR_LABELS, SERVICE_REQUEST_STATUS_LABELS, SERVICE_REQUEST_TYPE_LABELS, TABLE_SERVER_CONFIG, } from "../../shared/constants.js"; import { fmtDate } from "../../shared/utils.js"; import { AddIcon, FilterIcon } from "../../shared/icons.jsx"; function serviceRequestTypeLabel(value) { const code = String(value || "").toUpperCase(); return SERVICE_REQUEST_TYPE_LABELS[code] || code || "-"; } function serviceRequestStatusLabel(value) { const code = String(value || "").toUpperCase(); return SERVICE_REQUEST_STATUS_LABELS[code] || code || "-"; } function unreadLabel(row, role) { if (String(role || "").toUpperCase() === "LAWYER") { return row?.lawyer_unread ? "Да" : "Нет"; } return row?.admin_unread ? "Да" : "Нет"; } export function ServiceRequestsSection({ role, tables, status, getStatus, getFieldDef, getFilterValuePreview, resolveReferenceLabel, onRefresh, onCreate, onOpenFilter, onRemoveFilter, onEditFilter, onSort, onPrev, onNext, onLoadAll, onOpenRequest, onMarkRead, onEditRecord, onDeleteRecord, FilterToolbarComponent, DataTableComponent, TablePagerComponent, StatusLineComponent, IconButtonComponent, }) { const tableState = tables?.serviceRequests || { rows: [], filters: [], sort: [] }; const FilterToolbar = FilterToolbarComponent; const DataTable = DataTableComponent; const TablePager = TablePagerComponent; const StatusLine = StatusLineComponent; const IconButton = IconButtonComponent; const roleCode = String(role || "").toUpperCase(); return ( <>

Запросы

Запросы клиента к куратору и обращения на смену юриста.

{onCreate && roleCode === "ADMIN" ? ( ) : null}
{ const fieldDef = getFieldDef("serviceRequests", clause.field); return ( (fieldDef ? fieldDef.label : clause.field) + " " + OPERATOR_LABELS[clause.op] + " " + getFilterValuePreview("serviceRequests", clause) ); }} /> ( {serviceRequestTypeLabel(row.type)} {serviceRequestStatusLabel(row.status)} {row.body || "-"} {(() => { const requestTrackNumber = String(row?.request_track_number || "").trim() || String( typeof resolveReferenceLabel === "function" ? resolveReferenceLabel({ table: "requests", value_field: "id", label_field: "track_number" }, row?.request_id) : "" ).trim(); const requestLabel = requestTrackNumber || String(row?.request_id || "").trim() || "-"; if (!row.request_id) return "-"; return ( ); })()} {unreadLabel(row, roleCode)} {fmtDate(row.created_at)}
onMarkRead(row.id)} /> {roleCode === "ADMIN" ? ( <> onEditRecord(row)} /> onDeleteRecord(row.id)} tone="danger" /> ) : null}
)} /> ); } export default ServiceRequestsSection;