diff --git a/lib/DataSheet.js b/lib/DataSheet.js index 1d6db94..f928b4b 100644 --- a/lib/DataSheet.js +++ b/lib/DataSheet.js @@ -129,11 +129,10 @@ var DataSheet = function (_PureComponent) { var text = range(start.i, end.i).map(function (i) { return range(start.j, end.j).map(function (j) { - return data[i][j]; - }).map(function (cell) { - var value = dataRenderer ? dataRenderer(cell) : null; + var cell = data[i][j]; + var value = dataRenderer ? dataRenderer(cell, i, j) : null; if (value === '' || value === null || typeof value === 'undefined') { - return valueRenderer(cell); + return valueRenderer(cell, i, j); } return value; }).join('\t'); diff --git a/src/DataSheet.js b/src/DataSheet.js index d6e3d71..a03b803 100644 --- a/src/DataSheet.js +++ b/src/DataSheet.js @@ -82,14 +82,14 @@ export default class DataSheet extends PureComponent { const text = range(start.i, end.i).map((i) => - range(start.j, end.j).map(j => data[i][j]) - .map(cell => { - let value = dataRenderer ? dataRenderer(cell) : null; - if (value === '' || value === null || typeof(value) === 'undefined') { - return valueRenderer(cell); - } - return value; - }).join('\t') + range(start.j, end.j).map(j => { + const cell = data[i][j]; + const value = dataRenderer ? dataRenderer(cell, i, j) : null; + if (value === '' || value === null || typeof(value) === 'undefined') { + return valueRenderer(cell, i, j); + } + return value; + }).join('\t') ).join('\n'); e.clipboardData.setData('text/plain', text); } diff --git a/test/Datasheet.js b/test/Datasheet.js index 6ec4f58..5a2bdb7 100644 --- a/test/Datasheet.js +++ b/test/Datasheet.js @@ -804,8 +804,8 @@ describe('Component', () => { customWrapper = mount( cell.data} - dataRenderer = {(cell) => "=+" + cell.data} + valueRenderer = {(cell, i, j) => cell.data} + dataRenderer = {(cell, i, j) => "{" + i + "," + j + "}" + cell.data} onChange = {(cell, i, j, value) => data[i][j].data = value} /> ); @@ -813,7 +813,7 @@ describe('Component', () => { customWrapper.find('td').at(3).simulate('mouseOver'); document.dispatchEvent(evt); - expect(copied).toEqual("=+4\t=+2\n=+3\t=+5"); + expect(copied).toEqual("{0,0}4\t{0,1}2\n{1,0}3\t{1,1}5"); }) it('copies no data if there isn\'t anything selected', () => {