@talend/react-components
Version:
Set of react components.
97 lines (96 loc) • 3.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
exports.headerClasses = headerClasses;
exports.renderActions = renderActions;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _reactI18next = require("react-i18next");
var _constants = _interopRequireDefault(require("../../constants"));
var _translate = _interopRequireDefault(require("../../translate"));
var _Action = _interopRequireDefault(require("../../Actions/Action"));
var _HeaderModule = _interopRequireDefault(require("./Header.module.scss"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function headerClasses() {
return (0, _classnames.default)(_HeaderModule.default['tc-listview-header'], 'tc-listview-header');
}
function getAction(action, index) {
function onClick(event) {
if (action.onClick) {
action.onClick(event, {
value: event.target.value
});
}
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Action.default, {
label: action.label,
icon: action.icon,
onClick: onClick,
disabled: action.disabled,
tooltipPlacement: "bottom",
inProgress: action.inProgress,
hideLabel: true,
link: true
}, `${index}-listview-header-action`);
}
function renderActions(headerDefault = []) {
if (headerDefault.length) {
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: "actions",
children: headerDefault.map(getAction)
});
}
return null;
}
function Header({
headerDefault,
headerLabel,
labelProps,
nbItemsSelected,
nbItems,
required,
t
}) {
function renderTitle() {
const computedHeaderLabel = headerLabel || t('LISTVIEW_HEADER_TITLE', {
defaultValue: 'Values'
});
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("strong", {
...labelProps,
children: [computedHeaderLabel, required && '*']
});
}
function renderCount() {
if (nbItems >= 1 && nbItemsSelected >= 1) {
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("small", {
children: ["(", t('LISTVIEW_HEADER_SELECTED', {
count: nbItemsSelected,
total: nbItems,
defaultValue: '{{count}}/{{total}} selected'
}), ")"]
});
}
return null;
}
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("header", {
className: headerClasses(),
children: [renderTitle(), renderCount(), renderActions(headerDefault)]
});
}
Header.propTypes = {
headerDefault: _propTypes.default.arrayOf(_propTypes.default.shape(_Action.default.propTypes)).isRequired,
headerLabel: _propTypes.default.string,
labelProps: _propTypes.default.object,
required: _propTypes.default.bool,
nbItems: _propTypes.default.number,
nbItemsSelected: _propTypes.default.number,
t: _propTypes.default.func
};
Header.defaultProps = {
t: (0, _translate.default)()
};
var _default = exports.default = (0, _reactI18next.withTranslation)(_constants.default)(Header);
//# sourceMappingURL=Header.component.js.map