@ucloud-fe/react-components
Version:
UCloud react components
126 lines (92 loc) • 5.65 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var _Popover = _interopRequireDefault(require("../../components/Popover"));
var _Tooltip = _interopRequireDefault(require("../../components/Tooltip"));
var _DragWrap = require("./DragWrap");
var _this3 = void 0;
var _excluded = ["record", "rowTooltip"],
_excluded2 = ["record", "contextMenu", "rowTooltip"];
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var TableRowWithTooltip = /*#__PURE__*/_react.default.memo(function TableRowWithTooltip(_ref) {
var _this = this;
var record = _ref.record,
rowTooltip = _ref.rowTooltip,
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var tooltipProps = _react.default.useMemo(function () {
(0, _newArrowCheck2.default)(this, _this);
return rowTooltip === null || rowTooltip === void 0 ? void 0 : rowTooltip(record);
}.bind(this), [record, rowTooltip]);
if (!rowTooltip) return /*#__PURE__*/_react.default.createElement("tr", rest);
if (!tooltipProps) return /*#__PURE__*/_react.default.createElement("tr", rest);
return /*#__PURE__*/_react.default.createElement(_Tooltip.default, tooltipProps, /*#__PURE__*/_react.default.createElement("tr", rest));
});
var TableRowWithContextMenu = /*#__PURE__*/_react.default.memo(function TableRowWithContextMenu(_ref2) {
var _this2 = this;
var record = _ref2.record,
contextMenu = _ref2.contextMenu,
rowTooltip = _ref2.rowTooltip,
rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
var _useState = (0, _react.useState)(false),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
contextMenuVisible = _useState2[0],
setContextMenuVisible = _useState2[1];
var hideContextMenu = (0, _react.useCallback)(function () {
(0, _newArrowCheck2.default)(this, _this2);
setContextMenuVisible(false);
}.bind(this), []);
if (contextMenu) {
return /*#__PURE__*/_react.default.createElement(_Popover.default, {
popup: /*#__PURE__*/_react.default.createElement("div", null, contextMenu(record, hideContextMenu)),
trigger: ['contextMenu'],
hideAction: ['click'],
visible: contextMenuVisible,
onVisibleChange: setContextMenuVisible,
animation: null,
alignPoint: true
}, /*#__PURE__*/_react.default.createElement(TableRowWithTooltip, (0, _extends2.default)({
record: record,
rowTooltip: rowTooltip
}, rest)));
}
return /*#__PURE__*/_react.default.createElement(TableRowWithTooltip, (0, _extends2.default)({
record: record,
rowTooltip: rowTooltip
}, rest));
});
var TableRowWithDrag = /*#__PURE__*/_react.default.memo(function TableRowWithDrag(props) {
var _useContext = (0, _react.useContext)(_DragWrap.DragContext),
dragProps = _useContext.dragProps,
dropProps = _useContext.dropProps;
return /*#__PURE__*/_react.default.createElement(TableRowWithContextMenu, (0, _extends2.default)({}, props, dragProps, dropProps, {
draggable: false
}));
});
var TableRow = function TableRow(_ref3) {
(0, _newArrowCheck2.default)(this, _this3);
var restProps = (0, _extends2.default)({}, _ref3);
var _useContext2 = (0, _react.useContext)(_DragWrap.DragContext),
draggable = _useContext2.draggable;
if (draggable) return /*#__PURE__*/_react.default.createElement(TableRowWithDrag, restProps);
return /*#__PURE__*/_react.default.createElement(TableRowWithContextMenu, restProps);
}.bind(void 0);
TableRow.propTypes = {
record: _propTypes.default.any.isRequired,
contextMenu: _propTypes.default.func,
draggable: _propTypes.default.bool,
'data-row-key': _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
rowTooltip: _propTypes.default.func
};
var _default = /*#__PURE__*/_react.default.memo(TableRow);
exports.default = _default;