@collectionspace/cspace-public-browser
Version:
CollectionSpace public browser
61 lines (60 loc) • 2.52 kB
JavaScript
"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;