@talend/react-components
Version:
Set of react components.
91 lines (90 loc) • 3.09 kB
JavaScript
;
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