import { OPERATOR_LABELS, TABLE_SERVER_CONFIG } from "../../shared/constants.js"; import { boolLabel, fmtDate } from "../../shared/utils.js"; export function QuotesSection({ tables, status, getFieldDef, getFilterValuePreview, onRefresh, onCreate, onOpenFilter, onRemoveFilter, onEditFilter, onSort, onPrev, onNext, onLoadAll, onEditRecord, onDeleteRecord, FilterToolbarComponent, DataTableComponent, TablePagerComponent, StatusLineComponent, IconButtonComponent, }) { const tableState = tables?.quotes || { rows: [], filters: [], sort: [] }; const FilterToolbar = FilterToolbarComponent; const DataTable = DataTableComponent; const TablePager = TablePagerComponent; const StatusLine = StatusLineComponent; const IconButton = IconButtonComponent; return ( <>

Цитаты

Управление публичной лентой цитат с серверными фильтрами.

{ const fieldDef = getFieldDef("quotes", clause.field); return (fieldDef ? fieldDef.label : clause.field) + " " + OPERATOR_LABELS[clause.op] + " " + getFilterValuePreview("quotes", clause); }} /> ( {row.author || "-"} {row.text || "-"} {row.source || "-"} {boolLabel(row.is_active)} {String(row.sort_order ?? 0)} {fmtDate(row.created_at)}
onEditRecord(row)} /> onDeleteRecord(row.id)} tone="danger" />
)} /> ); } export default QuotesSection;