UNPKG

@talend/react-components

Version:
91 lines (90 loc) 3.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _classnames = _interopRequireDefault(require("classnames")); var _reactI18next = require("react-i18next"); var _constants = _interopRequireDefault(require("../constants")); var _theme = require("../theme"); var _Resource = _interopRequireDefault(require("./Resource")); var _ResourceList = _interopRequireDefault(require("./ResourceList.propTypes")); var _Toolbar = _interopRequireDefault(require("./Toolbar")); var _VirtualizedList = _interopRequireDefault(require("../VirtualizedList")); var _RowSelection = _interopRequireDefault(require("../VirtualizedList/RowSelection")); var _ResourceListModule = _interopRequireDefault(require("./ResourceList.module.scss")); var _Icon = _interopRequireDefault(require("../Icon")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const theme = (0, _theme.getTheme)(_ResourceListModule.default); function isFiltered({ state } = {}) { return state && (state.certified || state.favorites); } function ResourceList({ className, collection, isLoading, onRowClick, renderAs, toolbar, rowProps, ...rest }) { const { t } = (0, _reactI18next.useTranslation)(_constants.default); const Renderer = (0, _RowSelection.default)(_Resource.default, { as: renderAs, getRowData: ({ index }) => collection[index], rowProps }); const noRowsRenderer = (0, _react.useCallback)(() => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: theme('tc-resource-list--no-results'), children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", { className: theme('tc-resource-list--no-results-text'), role: "status", "aria-live": "polite", children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, { className: theme('tc-resource-list--no-results-icon'), name: "talend-fieldglass" }), ' ', t('RESOURCELIST_NO_RESULTS', { defaultValue: 'No results' })] }) }), [t]); return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { className: theme('tc-resource-list'), children: [toolbar && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.default, { ...toolbar }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: (0, _classnames.default)(className, theme('tc-resource-list-items'), { [theme('filtered')]: isFiltered(toolbar) }), children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_VirtualizedList.default, { rowHeight: 100, ...rest, collection: collection, inProgress: isLoading, onRowClick: onRowClick, rowRenderers: { resource: Renderer }, noRowsRenderer: noRowsRenderer, type: "resource" }) })] }); } ResourceList.defaultProps = { collection: [] }; ResourceList.propTypes = { ..._ResourceList.default }; var _default = exports.default = ResourceList; //# sourceMappingURL=ResourceList.component.js.map