@talend/react-components
Version:
Set of react components.
99 lines (98 loc) • 3.15 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.AboutDialogTable = AboutDialogTable;
exports.Text = Text;
exports.getColumnHeaders = void 0;
var _classnames = _interopRequireDefault(require("classnames"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Skeleton = _interopRequireDefault(require("../Skeleton"));
var _translate = require("../translate");
var _AboutDialogModule = _interopRequireDefault(require("./AboutDialog.module.scss"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const i18n = (0, _translate.getI18nInstance)();
const getColumnHeaders = () => ({
name: {
key: 'name',
label: i18n.t('tui-components:SERVICE', {
defaultValue: 'Service'
})
},
build: {
key: 'build',
label: i18n.t('tui-components:BUILD_ID', {
defaultValue: 'Build ID'
})
},
version: {
key: 'version',
label: i18n.t('tui-components:VERSION', {
defaultValue: 'Version'
})
}
});
exports.getColumnHeaders = getColumnHeaders;
function Text({
text = '',
loading,
size = _Skeleton.default.SIZES.medium
}) {
return loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
type: _Skeleton.default.TYPES.text,
size: size
}) : text;
}
function AboutDialogTable({
definition = Object.values(getColumnHeaders()),
services = [],
loading = false
}) {
if (!services || !services.length) {
return null;
}
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
className: (0, _classnames.default)(_AboutDialogModule.default['about-versions'], 'about-versions', 'table table-striped'),
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("thead", {
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("tr", {
children: definition.map(attribute => /*#__PURE__*/(0, _jsxRuntime.jsx)("th", {
children: attribute.label
}, attribute.key))
})
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("tbody", {
children: (loading ? [{
name: 'loading-first'
}, {
name: 'loading-second'
}, {
name: 'loading-third'
}] : services).map(service => /*#__PURE__*/(0, _jsxRuntime.jsx)("tr", {
children: definition.map(attribute => /*#__PURE__*/(0, _jsxRuntime.jsx)("td", {
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Text, {
loading: loading,
text: service[attribute.key]
})
}, attribute.key))
}, service.name))
})]
});
}
Text.propTypes = {
text: _propTypes.default.string,
loading: _propTypes.default.bool,
size: _propTypes.default.string
};
AboutDialogTable.propTypes = {
services: _propTypes.default.arrayOf(_propTypes.default.shape({
name: _propTypes.default.string,
version: _propTypes.default.string,
build: _propTypes.default.string
})),
definition: _propTypes.default.arrayOf(_propTypes.default.shape({
key: _propTypes.default.string,
label: _propTypes.default.string
})),
loading: _propTypes.default.bool
};
//# sourceMappingURL=AboutDialogTable.component.js.map