(props)
| 22 | } |
| 23 | |
| 24 | function 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); |
nothing calls this directly
no test coverage detected