UNPKG

@collectionspace/cspace-public-browser

Version:
61 lines (60 loc) 2.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SearchResultTile; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactRouterDom = require("react-router-dom"); var _immutable = _interopRequireDefault(require("immutable")); var _SearchResultImage = _interopRequireDefault(require("./SearchResultImage")); var _config = _interopRequireDefault(require("../../../config")); var _SearchResultTile = _interopRequireDefault(require("../../../../styles/cspace/SearchResultTile.css")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const propTypes = { gatewayUrl: _propTypes.default.string.isRequired, index: _propTypes.default.number.isRequired, loadImageImmediately: _propTypes.default.bool.isRequired, params: _propTypes.default.instanceOf(_immutable.default.Map).isRequired, result: _propTypes.default.instanceOf(_immutable.default.Map).isRequired }; function SearchResultTile(props) { const { gatewayUrl, loadImageImmediately, index, params, result } = props; const detailPath = _config.default.get('detailPath'); const referenceField = _config.default.get('referenceField'); const tileTitleField = _config.default.get(['tileTitle', 'field']); const tileTitleFormat = _config.default.get(['tileTitle', 'formatValue']); const doc = result.get('_source'); const csid = doc.get('ecm:name'); const url = csid && `/${detailPath}/${csid}`; const holdingInstitutions = doc.get('collectionspace_denorm:holdingInstitutions'); const mediaCsid = doc.getIn(['collectionspace_denorm:mediaCsid', 0]); const referenceValue = doc.get(referenceField); let title = doc.get(tileTitleField); if (tileTitleFormat) { title = tileTitleFormat(title); } return /*#__PURE__*/_react.default.createElement(_reactRouterDom.Link, { className: _SearchResultTile.default.common, to: { pathname: url, state: { index, searchParams: params.toJS() } } }, /*#__PURE__*/_react.default.createElement(_SearchResultImage.default, { gatewayUrl: gatewayUrl, holdingInstitutions: holdingInstitutions, loadImageImmediately: loadImageImmediately, mediaCsid: mediaCsid, referenceValue: referenceValue }), /*#__PURE__*/_react.default.createElement("article", null, /*#__PURE__*/_react.default.createElement("h2", null, title))); } SearchResultTile.propTypes = propTypes;