Changed the rendering of each data cell to check for the headers of each dimesnsion and measure where it shall be written.

This commit is contained in:
Purwa Shrivastava
2019-12-04 11:15:14 +01:00
parent 3ebc2b9e29
commit 8aa86275f0
2 changed files with 49 additions and 34 deletions

View File

@@ -32,45 +32,34 @@ class DataTable extends React.PureComponent {
maxWidth: columnSeparatorWidth
};
const renderMeasurementData = (dimIndex, atEvery, styleBuilder) => {
const renderMeasurementData = (dimIndex, atEvery) => {
const injectSeparatorsArray = injectSeparators(
matrix[dimIndex],
columnSeparatorWidth,
atEvery
);
let measurementData;
injectSeparatorsArray.forEach((matrixRow) => {
if (dimension1[dimIndex].displayValue === matrixRow.parents.dimension1.header) {
dimension2.forEach((dim2) => {
if (dim2.displayValue === matrixRow.parents.dimension2.header) {
measurementData = matrixRow;
if (dimension2.length <= 0) {
return injectSeparatorsArray;
}
let measurementDataRow = [],
index = 0;
dimension2.forEach((dim2) => {
measurements.forEach((measure) => {
for (index = 0; index < injectSeparatorsArray.length; index++) {
if (dimension1[dimIndex].displayValue === injectSeparatorsArray[index].parents.dimension1.header) {
if (dim2.displayValue === injectSeparatorsArray[index].parents.dimension2.header) {
if (measure.name === injectSeparatorsArray[index].parents.measurement.header) {
measurementDataRow.push(injectSeparatorsArray[index]);
break;
}
}
}
});
}
if (measurementData && measurementData.isSeparator) {
return (
<td
className="empty"
key={`${dimension1.displayValue}-${dimIndex}-separator`}
style={separatorStyle}
/>
);
}
const id = `${dimension1.elementNumber}-${dimension2 && dimension2.elementNumber}-${measurementData.header}-${measurementData.index}`;
return (
<DataCell
cellWidth={cellWidth}
component={component}
data={data}
general={general}
key={`${dimension1.displayValue}-${id}`}
measurement={measurementData}
styleBuilder={styleBuilder}
styling={styling}
/>
);
}
});
});
return measurementDataRow;
};
return (
@@ -108,7 +97,33 @@ class DataTable extends React.PureComponent {
styling={styling}
/> : null
}
{renderData && renderMeasurementData(dimensionIndex, { atEvery: measurements.length }, styleBuilder)}
{renderData && renderMeasurementData(dimensionIndex, { atEvery: measurements.length }).map((measurementData, index) => {
if (measurementData.isSeparator) {
return (
<td
className="empty"
key={`${dimensionEntry.displayValue}-${index}-separator`}
style={separatorStyle}
/>
);
}
// eslint-disable-next-line no-shadow
const { dimension1: dimension1Info, dimension2, measurement } = measurementData.parents;
const id = `${dimension1Info.elementNumber}-${dimension2 && dimension2.elementNumber}-${measurement.header}-${measurement.index}`;
return (
<DataCell
cellWidth={cellWidth}
component={component}
data={data}
general={general}
key={`${dimensionEntry.displayValue}-${id}`}
measurement={measurementData}
styleBuilder={styleBuilder}
styling={styling}
/>
);
})}
</tr>
);
})}

View File

@@ -180,8 +180,8 @@ function appendMissingCells (
displayValue: '',
parents: {
dimension1: {
elementNumber: dim1[index].elementNumber,
header: dim1[index].displayValue
elementNumber: dim1[matrixIndex].elementNumber,
header: dim1[matrixIndex].displayValue
},
dimension2: {
elementNumber: dim2.elementNumber,