ekko
Version:
Excel like Grid in React
57 lines (45 loc) • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
var _reactEmotion = require("react-emotion");
var _styles = require("./styles");
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
class HeaderCell extends React.Component {
constructor(...args) {
var _temp;
return _temp = super(...args), _defineProperty(_defineProperty(_defineProperty(this, "state", {}), "handleSort", () => {
const _this$props = this.props,
sortable = _this$props.sortable,
index = _this$props.index,
onSort = _this$props.onSort;
if (sortable) {
onSort(index);
}
}), "handKeyDown", event => {
if (event.which === 13) {
this.handleSort();
}
}), _temp;
}
render() {
const _this$props2 = this.props,
sortable = _this$props2.sortable,
label = _this$props2.label,
sortOrder = _this$props2.sortOrder;
return React.createElement("div", {
className: (0, _reactEmotion.cx)([_styles.cssCell, {
sortable
}]),
tabIndex: 0,
role: "textbox",
onClick: this.handleSort,
onKeyDown: this.handKeyDown
}, label, sortOrder === 'none' ? null : sortOrder === 'asc' ? '^' : 'v');
}
}
var _default = HeaderCell;
exports.default = _default;