UNPKG

ndla-ui

Version:

UI component library for NDLA.

85 lines (78 loc) 2.4 kB
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* * Copyright (c) 2016-present, NDLA. * * This source code is licensed under the GPLv3 license found in the * LICENSE file in the root directory of this source tree. * */ import React from 'react'; import PropTypes from 'prop-types'; import BEMHelper from 'react-bem-helper'; import { Portrait, SafeLink } from 'ndla-ui'; var classes = new BEMHelper('c-search-result-author'); var SearchResultAuthor = function SearchResultAuthor(_ref) { var messages = _ref.messages, url = _ref.url, image = _ref.image, modifier = _ref.modifier; return React.createElement( 'div', classes('', modifier), React.createElement( 'div', null, React.createElement( 'h1', classes('heading'), messages.authorName ), React.createElement( 'p', null, messages.role ), React.createElement( 'p', null, messages.phone ), React.createElement( 'div', classes('links'), messages.email && React.createElement( SafeLink, { to: 'mailto:' + messages.email }, messages.email ), url && React.createElement( SafeLink, _extends({ to: url }, classes('url')), messages.readmoreLabel ) ) ), React.createElement(Portrait, _extends({ src: image, alt: messages.authorName }, classes('portrait-image'))) ); }; SearchResultAuthor.propTypes = { messages: PropTypes.shape({ authorName: PropTypes.string.isRequired, role: PropTypes.string.isRequired, phone: PropTypes.string, email: PropTypes.string, readmoreLabel: function readmoreLabel(props, propName, componentName) { if (typeof props.url === 'string' && typeof props[propName] !== 'string') { return new Error(componentName + ' messages.readmoreLabel is required when propTypes.url'); } return null; } }), image: PropTypes.string.isRequired, url: PropTypes.string, modifier: PropTypes.oneOf(['desktop', 'tablet']).isRequired }; export default SearchResultAuthor;