ndla-ui
Version:
UI component library for NDLA.
82 lines (66 loc) • 3.96 kB
JavaScript
;
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; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _shapes = require('../shapes');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } /*
* Copyright (c) 2017-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 citeDetailString = function citeDetailString(description) {
return description ? description + '. ' : '';
};
var FootNote = function FootNote(_ref) {
var footNote = _ref.footNote;
return _react2.default.createElement(
'li',
{ className: 'c-footnotes__item' },
_react2.default.createElement(
'cite',
{ className: 'c-footnotes__cite', id: 'note' + footNote.ref },
_react2.default.createElement(
'sup',
null,
_react2.default.createElement(
'a',
{ href: '#ref' + footNote.ref, target: '_self' },
footNote.ref
)
),
'\xAB' + footNote.title + '\xBB. ' + footNote.authors.join(' ') + '. ' + citeDetailString(footNote.edition) + citeDetailString(footNote.publisher) + footNote.year + '. ',
footNote.url ? _react2.default.createElement(
'a',
{ href: footNote.url },
footNote.url,
'.'
) : null
)
);
};
FootNote.propTypes = {
footNote: _shapes.FootNoteShape.isRequired
};
var ArticleFootNotes = function ArticleFootNotes(_ref2) {
var footNotes = _ref2.footNotes,
rest = _objectWithoutProperties(_ref2, ['footNotes']);
return _react2.default.createElement(
'ol',
{ className: 'c-footnotes' },
footNotes.map(function (footNote) {
return _react2.default.createElement(FootNote, _extends({ key: footNote.ref, footNote: footNote }, rest));
})
);
};
ArticleFootNotes.propTypes = {
footNotes: _propTypes2.default.arrayOf(_shapes.FootNoteShape).isRequired
};
exports.default = ArticleFootNotes;