UNPKG

cspace-ui

Version:
57 lines (55 loc) 2.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SearchDetailList; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _immutable = _interopRequireDefault(require("immutable")); var _reactRedux = require("react-redux"); var _get = _interopRequireDefault(require("lodash/get")); var _DetailItem = _interopRequireDefault(require("./DetailItem")); var _searchResultHelpers = require("../searchResultHelpers"); var _reducers = require("../../../reducers"); var _searchNames = require("../../../constants/searchNames"); var _ConfigProvider = require("../../config/ConfigProvider"); var _SearchList = _interopRequireDefault(require("../../../../styles/cspace-ui/SearchList.css")); var _searchHelpers = require("../../../helpers/searchHelpers"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const propTypes = { searchDescriptor: _propTypes.default.instanceOf(_immutable.default.Map) }; const getDetailConfig = (config, searchDescriptor) => { const recordType = searchDescriptor.get('recordType'); const subresource = searchDescriptor.get('subresource'); const configurer = subresource ? config.subresources[subresource] : config.recordTypes[recordType]; return (0, _get.default)(configurer, ['detailList']); }; function SearchDetailList({ searchDescriptor }) { const results = (0, _reactRedux.useSelector)(state => (0, _reducers.getSearchResult)(state, _searchNames.SEARCH_RESULT_PAGE_SEARCH_NAME, searchDescriptor)); const selectedItems = (0, _reactRedux.useSelector)(state => (0, _reducers.getSearchSelectedItems)(state, _searchNames.SEARCH_RESULT_PAGE_SEARCH_NAME)); const config = (0, _ConfigProvider.useConfig)(); const listType = (0, _searchHelpers.getListTypeFromResult)(config, results); const { items } = (0, _searchResultHelpers.readListItems)(config, listType, results); if (!items) { return null; } // read headers const detailConfig = getDetailConfig(config, searchDescriptor); return /*#__PURE__*/_react.default.createElement("div", { className: _SearchList.default.detail }, items.map((item, index) => /*#__PURE__*/_react.default.createElement(_DetailItem.default, { item: item, key: item.get('csid'), index: index, detailConfig: detailConfig, searchDescriptor: searchDescriptor, listType: listType, selectedItems: selectedItems }))); } SearchDetailList.propTypes = propTypes;