Skip to content

Commit 4ecc60a

Browse files
committed
Adds cell coordinates to handleCopy
1 parent e4e769b commit 4ecc60a

3 files changed

Lines changed: 14 additions & 15 deletions

File tree

lib/DataSheet.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,11 +129,10 @@ var DataSheet = function (_PureComponent) {
129129

130130
var text = range(start.i, end.i).map(function (i) {
131131
return range(start.j, end.j).map(function (j) {
132-
return data[i][j];
133-
}).map(function (cell) {
134-
var value = dataRenderer ? dataRenderer(cell) : null;
132+
var cell = data[i][j];
133+
var value = dataRenderer ? dataRenderer(cell, i, j) : null;
135134
if (value === '' || value === null || typeof value === 'undefined') {
136-
return valueRenderer(cell);
135+
return valueRenderer(cell, i, j);
137136
}
138137
return value;
139138
}).join('\t');

src/DataSheet.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,14 @@ export default class DataSheet extends PureComponent {
8282

8383

8484
const text = range(start.i, end.i).map((i) =>
85-
range(start.j, end.j).map(j => data[i][j])
86-
.map(cell => {
87-
let value = dataRenderer ? dataRenderer(cell) : null;
88-
if (value === '' || value === null || typeof(value) === 'undefined') {
89-
return valueRenderer(cell);
90-
}
91-
return value;
92-
}).join('\t')
85+
range(start.j, end.j).map(j => {
86+
const cell = data[i][j];
87+
const value = dataRenderer ? dataRenderer(cell, i, j) : null;
88+
if (value === '' || value === null || typeof(value) === 'undefined') {
89+
return valueRenderer(cell, i, j);
90+
}
91+
return value;
92+
}).join('\t')
9393
).join('\n');
9494
e.clipboardData.setData('text/plain', text);
9595
}

test/Datasheet.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -804,16 +804,16 @@ describe('Component', () => {
804804
customWrapper = mount(
805805
<DataSheet
806806
data = {data}
807-
valueRenderer = {(cell) => cell.data}
808-
dataRenderer = {(cell) => "=+" + cell.data}
807+
valueRenderer = {(cell, i, j) => cell.data}
808+
dataRenderer = {(cell, i, j) => "{" + i + "," + j + "}" + cell.data}
809809
onChange = {(cell, i, j, value) => data[i][j].data = value}
810810
/>
811811
);
812812
customWrapper.find('td').at(0).simulate('mouseDown');
813813
customWrapper.find('td').at(3).simulate('mouseOver');
814814

815815
document.dispatchEvent(evt);
816-
expect(copied).toEqual("=+4\t=+2\n=+3\t=+5");
816+
expect(copied).toEqual("{0,0}4\t{0,1}2\n{1,0}3\t{1,1}5");
817817
})
818818

819819
it('copies no data if there isn\'t anything selected', () => {

0 commit comments

Comments
 (0)