UNPKG

ndla-ui

Version:

UI component library for NDLA.

99 lines (85 loc) 4.51 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); 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. * */ var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactBemHelper = require('react-bem-helper'); var _reactBemHelper2 = _interopRequireDefault(_reactBemHelper); var _ndlaUi = require('ndla-ui'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var classes = new _reactBemHelper2.default('c-search-result-author'); var SearchResultAuthor = function SearchResultAuthor(_ref) { var messages = _ref.messages, url = _ref.url, image = _ref.image, modifier = _ref.modifier; return _react2.default.createElement( 'div', classes('', modifier), _react2.default.createElement( 'div', null, _react2.default.createElement( 'h1', classes('heading'), messages.authorName ), _react2.default.createElement( 'p', null, messages.role ), _react2.default.createElement( 'p', null, messages.phone ), _react2.default.createElement( 'div', classes('links'), messages.email && _react2.default.createElement( _ndlaUi.SafeLink, { to: 'mailto:' + messages.email }, messages.email ), url && _react2.default.createElement( _ndlaUi.SafeLink, _extends({ to: url }, classes('url')), messages.readmoreLabel ) ) ), _react2.default.createElement(_ndlaUi.Portrait, _extends({ src: image, alt: messages.authorName }, classes('portrait-image'))) ); }; SearchResultAuthor.propTypes = { messages: _propTypes2.default.shape({ authorName: _propTypes2.default.string.isRequired, role: _propTypes2.default.string.isRequired, phone: _propTypes2.default.string, email: _propTypes2.default.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: _propTypes2.default.string.isRequired, url: _propTypes2.default.string, modifier: _propTypes2.default.oneOf(['desktop', 'tablet']).isRequired }; exports.default = SearchResultAuthor;