UNPKG

@talend/react-components

Version:
78 lines (76 loc) 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ItemOption = ItemOption; var _react = require("react"); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _gridrow = require("../VirtualizedList/utils/gridrow"); var _ItemOptionModule = _interopRequireDefault(require("./ItemOption.module.scss")); var _Emphasis = _interopRequireDefault(require("../Emphasis/Emphasis.component")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class ItemOptionRow extends _react.Component { static getDerivedStateFromProps(props) { return { item: (0, _gridrow.getRowData)(props.parent, props.index) }; } constructor(props) { super(props); this.state = {}; } shouldComponentUpdate(nextProps, nextState) { const oldData = this.state.item; const newData = nextState.item; return oldData !== newData && ['selected', 'value', 'name', 'searchTerm'].some(attr => oldData[attr] !== newData[attr]); } render() { const item = this.state.item; const id = `${item.id || item.value}`; return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: (0, _classnames.default)('form-group', _ItemOptionModule.default.row, 'tc-multi-select-item'), style: this.props.style, children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: "checkbox", children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("label", { children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", { id: `checkbox-${id}`, type: "checkbox", checked: !!item.selected, onChange: event => this.props.parent.props.onRowClick({ event, rowData: item.value }) }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { className: `${_ItemOptionModule.default.item} control-label`, htmlFor: `checkbox-${id}`, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Emphasis.default, { text: item.name, value: item.searchTerm }) })] }) }) }); } } ItemOptionRow.propTypes = { style: _propTypes.default.object, index: _propTypes.default.number, parent: _propTypes.default.shape({ props: _propTypes.default.shape({ collection: _propTypes.default.array, onRowClick: _propTypes.default.func }) }) }; // eslint-disable-next-line import/prefer-default-export function ItemOption(props) { return /*#__PURE__*/(0, _jsxRuntime.jsx)(ItemOptionRow, { ...props }); } ItemOption.rowHeight = 40; //# sourceMappingURL=ItemOption.component.js.map