Skip to content

Commit d149941

Browse files
committed
fix #994
1 parent 1aaf605 commit d149941

File tree

2 files changed

+28
-23
lines changed

2 files changed

+28
-23
lines changed

src/TableEditColumn.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,12 @@ class TableEditColumn extends Component {
116116
this.clearTimeout();
117117
}
118118

119+
handleClick = e => {
120+
if (e.target.tagName !== 'TD') {
121+
e.stopPropagation();
122+
}
123+
}
124+
119125
render() {
120126
const { editable, format, customEditor } = this.props;
121127
const { shakeEditor, className } = this.state;
@@ -146,7 +152,8 @@ class TableEditColumn extends Component {
146152
return (
147153
<td ref='td'
148154
style={ { position: 'relative' } }
149-
className={ className }>
155+
className={ className }
156+
onClick={ this.handleClick }>
150157
{ cellEditor }
151158
<Notifier ref='notifier'/>
152159
</td>

src/TableRow.js

+20-22
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,29 @@ class TableRow extends Component {
1111
rowClick = e => {
1212
const rowIndex = this.props.index + 1;
1313
if (this.props.onRowClick) this.props.onRowClick(rowIndex);
14-
if (e.target.tagName === 'TD') {
15-
const cellIndex = e.target.cellIndex;
16-
const { selectRow, unselectableRow, isSelected, onSelectRow, onExpandRow } = this.props;
17-
if (selectRow) {
18-
if (selectRow.clickToSelect && !unselectableRow) {
19-
onSelectRow(rowIndex, !isSelected, e);
20-
} else if (selectRow.clickToSelectAndEditCell && !unselectableRow) {
21-
this.clickNum++;
22-
/** if clickToSelectAndEditCell is enabled,
23-
* there should be a delay to prevent a selection changed when
24-
* user dblick to edit cell on same row but different cell
25-
**/
26-
setTimeout(() => {
27-
if (this.clickNum === 1) {
28-
onSelectRow(rowIndex, !isSelected, e);
29-
onExpandRow(rowIndex, cellIndex);
30-
}
31-
this.clickNum = 0;
32-
}, 200);
33-
} else {
34-
this.expandRow(rowIndex, cellIndex);
35-
}
14+
const cellIndex = e.target.cellIndex;
15+
const { selectRow, unselectableRow, isSelected, onSelectRow, onExpandRow } = this.props;
16+
if (selectRow) {
17+
if (selectRow.clickToSelect && !unselectableRow) {
18+
onSelectRow(rowIndex, !isSelected, e);
19+
} else if (selectRow.clickToSelectAndEditCell && !unselectableRow) {
20+
this.clickNum++;
21+
/** if clickToSelectAndEditCell is enabled,
22+
* there should be a delay to prevent a selection changed when
23+
* user dblick to edit cell on same row but different cell
24+
**/
25+
setTimeout(() => {
26+
if (this.clickNum === 1) {
27+
onSelectRow(rowIndex, !isSelected, e);
28+
onExpandRow(rowIndex, cellIndex);
29+
}
30+
this.clickNum = 0;
31+
}, 200);
3632
} else {
3733
this.expandRow(rowIndex, cellIndex);
3834
}
35+
} else {
36+
this.expandRow(rowIndex, cellIndex);
3937
}
4038
}
4139

0 commit comments

Comments
 (0)