MCPcopy
hub / github.com/chartbrew/chartbrew / TableConfiguration

Function TableConfiguration

client/src/components/TableConfiguration.jsx:24–301  ·  view source on GitHub ↗
(props)

Source from the content-addressed store, hash-verified

22}
23
24function TableConfiguration(props) {
25 const { dataset, chartData, tableFields, onUpdate, loading } = props;
26
27 const [isDragState, setIsDragState] = useState(false);
28 const [fieldForFormatting, setFieldForFormatting] = useState("");
29 const [fieldFormatConfig, setFieldFormatConfig] = useState(null);
30 const [fieldFormatLoading, setFieldFormatLoading] = useState(false);
31 const [tableColumns, setTableColumns] = useState([]);
32
33 const _filterTableFields = () => {
34 const filteredFields = [];
35 tableFields.forEach((field) => {
36 if (!dataset.excludedFields || !dataset.excludedFields.find((i) => i === field.accessor)) {
37 filteredFields.push(field);
38 }
39 });
40
41 return filteredFields;
42 };
43
44 const _onExcludeField = (field) => {
45 const excludedFields = dataset.excludedFields || [];
46 const newExcludedFields = [...excludedFields, field];
47 onUpdate({ excludedFields: newExcludedFields });
48 };
49
50 const _onShowField = (field) => {
51 const excludedFields = cloneDeep(dataset.excludedFields) || [];
52 const index = indexOf(excludedFields, field);
53 excludedFields.splice(index, 1);
54 onUpdate({ excludedFields });
55 };
56
57 const _onDragStateClicked = () => {
58 setIsDragState(!isDragState);
59
60 const columnsForOrdering = [];
61 if (!isDragState && (!dataset.columnsOrder || dataset.columnsOrder.length === 0)) {
62 const datasetData = chartData[dataset.legend];
63 if (datasetData && datasetData.columns) {
64 datasetData.columns.forEach((field, index) => {
65 if (field && field.Header && field.Header.indexOf("__cb_group") === -1) {
66 columnsForOrdering.push({
67 Header: field.Header,
68 id: index,
69 });
70 }
71 });
72 }
73
74 setTableColumns(columnsForOrdering);
75 } else {
76 const notFoundColumns = [];
77 const datasetData = chartData[dataset.legend];
78 if (datasetData && datasetData.columns) {
79 datasetData.columns.forEach((field) => {
80 if (!dataset.columnsOrder.find((column) => column === field.Header)) {
81 notFoundColumns.push(field.Header);

Callers

nothing calls this directly

Calls 5

_filterTableFieldsFunction · 0.85
_onExcludeFieldFunction · 0.85
_onShowFieldFunction · 0.85
updateFunction · 0.50

Tested by

no test coverage detected