@talend/react-components
Version:
Set of react components.
110 lines (108 loc) • 3.38 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Actions = require("../../Actions");
var _constants = require("../utils/constants");
var _CellTitleInput = _interopRequireDefault(require("./CellTitleInput.component"));
var _CellLink = _interopRequireDefault(require("../CellLink/CellLink.component"));
var _TooltipTrigger = _interopRequireDefault(require("../../TooltipTrigger"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const {
TITLE_MODE_TEXT,
TITLE_MODE_INPUT
} = _constants.cellTitleDisplayModes;
/**
* Component that selects and renders the requested title display mode
*/
function CellTitleSelector(props) {
const {
id,
cellData,
className,
displayMode,
onClick,
linkAs,
onEditSubmit,
onEditCancel,
rowData,
columnData,
tooltip
} = props;
if (displayMode === TITLE_MODE_INPUT) {
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CellTitleInput.default, {
id: id && `${id}-input`,
cellData: cellData,
rowData: rowData,
onEditSubmit: onEditSubmit,
onEditCancel: onEditCancel
});
}
if (onClick) {
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Actions.Action, {
...columnData,
id: id && `${id}-btn`,
icon: undefined,
className: className,
onClick: event => onClick(event, rowData),
role: "link",
bsStyle: "link",
label: cellData,
type: "button",
tooltip: tooltip || cellData
});
}
if (linkAs) {
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CellLink.default, {
cellData: cellData,
rowData: rowData,
columnData: {
...columnData,
id,
linkAs,
tooltip
},
className: className
});
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipTrigger.default, {
label: tooltip || cellData,
tooltipPlacement: "top",
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
id: id,
className: className,
children: cellData
})
});
}
CellTitleSelector.propTypes = {
/** The id prefix. */
id: _propTypes.default.string,
/** The input value. */
cellData: _propTypes.default.string.isRequired,
/** The title element className. */
className: _propTypes.default.string,
/** The display mode. */
displayMode: _propTypes.default.oneOf([TITLE_MODE_TEXT, TITLE_MODE_INPUT]),
/** The onClick callback triggered on title main button click. */
onClick: _propTypes.default.func,
// The "as" property expected in a Link to generate a simple href.
linkAs: _propTypes.default.element,
/** Input mode : the cancel callback on ESC keydown. */
onEditCancel: _propTypes.default.func,
/** Input mode : the submit callback on ENTER keydown or blur. */
onEditSubmit: _propTypes.default.func,
/** The column item */
columnData: _propTypes.default.object,
// eslint-disable-line react/forbid-prop-types
/** The collection item. */
rowData: _propTypes.default.object,
// eslint-disable-line react/forbid-prop-types
/** The title element tooltip */
tooltip: _propTypes.default.string
};
var _default = exports.default = CellTitleSelector;
//# sourceMappingURL=CellTitleSelector.component.js.map