| 124 | } |
| 125 | |
| 126 | _getEventHandlers(handlers = {}) { |
| 127 | const { rowData, rowIndex, rowKey, onRowHover } = this.props; |
| 128 | const eventHandlers = {}; |
| 129 | Object.keys(handlers).forEach(eventKey => { |
| 130 | const callback = handlers[eventKey]; |
| 131 | if (typeof callback === 'function') { |
| 132 | eventHandlers[eventKey] = event => { |
| 133 | callback({ rowData, rowIndex, rowKey, event }); |
| 134 | }; |
| 135 | } |
| 136 | }); |
| 137 | |
| 138 | if (onRowHover) { |
| 139 | const mouseEnterHandler = eventHandlers['onMouseEnter']; |
| 140 | eventHandlers['onMouseEnter'] = event => { |
| 141 | onRowHover({ |
| 142 | hovered: true, |
| 143 | rowData, |
| 144 | rowIndex, |
| 145 | rowKey, |
| 146 | event, |
| 147 | }); |
| 148 | mouseEnterHandler && mouseEnterHandler(event); |
| 149 | }; |
| 150 | |
| 151 | const mouseLeaveHandler = eventHandlers['onMouseLeave']; |
| 152 | eventHandlers['onMouseLeave'] = event => { |
| 153 | onRowHover({ |
| 154 | hovered: false, |
| 155 | rowData, |
| 156 | rowIndex, |
| 157 | rowKey, |
| 158 | event, |
| 159 | }); |
| 160 | mouseLeaveHandler && mouseLeaveHandler(event); |
| 161 | }; |
| 162 | } |
| 163 | |
| 164 | return eventHandlers; |
| 165 | } |
| 166 | } |
| 167 | |
| 168 | TableRow.defaultProps = { |