diff --git a/examples/App.jsx b/examples/App.jsx index 1f33943..4727ab0 100644 --- a/examples/App.jsx +++ b/examples/App.jsx @@ -25,6 +25,16 @@ class PivotTableUISmartWrapper extends React.PureComponent { render() { return this.setState({pivotState: s})} unusedOrientationCutoff={Infinity} />; diff --git a/src/TableRenderers.jsx b/src/TableRenderers.jsx index ac88e25..73b86f3 100644 --- a/src/TableRenderers.jsx +++ b/src/TableRenderers.jsx @@ -106,6 +106,36 @@ function makeRenderer(opts = {}) { } } + // PutClickHandler + // this.props.rendererOptions.table.clickCallback + const getClickHandler = + this.props.rendererOptions && + this.props.rendererOptions.table && + this.props.rendererOptions.table.clickCallback + ? (value, rowValues, colValues) => { + const filters = {}; + for (const i of Object.keys(colAttrs || {})) { + const attr = colAttrs[i]; + if (colValues[i] !== null) { + filters[attr] = colValues[i]; + } + } + for (const i of Object.keys(rowAttrs || {})) { + const attr = rowAttrs[i]; + if (rowValues[i] !== null) { + filters[attr] = rowValues[i]; + } + } + return e => + this.props.rendererOptions.table.clickCallback( + e, + value, + filters, + pivotData + ); + } + : null; + return ( @@ -199,6 +229,10 @@ function makeRenderer(opts = {}) { @@ -254,6 +302,7 @@ function makeRenderer(opts = {}) { TableRenderer.propTypes = PivotData.propTypes; TableRenderer.defaultProps.tableColorScaleGenerator = redColorScaleGenerator; TableRenderer.propTypes.tableColorScaleGenerator = PropTypes.func; + TableRenderer.propTypes.rendererOptions = PropTypes.object; return TableRenderer; }
{totalAggregator.format(totalAggregator.value())} @@ -233,6 +271,10 @@ function makeRenderer(opts = {}) { {totalAggregator.format(totalAggregator.value())} @@ -240,7 +282,13 @@ function makeRenderer(opts = {}) { ); })} - + {grandTotalAggregator.format(grandTotalAggregator.value())}