UNPKG

ndla-ui

Version:

UI component library for NDLA.

70 lines (60 loc) 2.25 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; }; 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. * */ import React from 'react'; import PropTypes from 'prop-types'; import { FootNoteShape } from '../shapes'; var citeDetailString = function citeDetailString(description) { return description ? description + '. ' : ''; }; var FootNote = function FootNote(_ref) { var footNote = _ref.footNote; return React.createElement( 'li', { className: 'c-footnotes__item' }, React.createElement( 'cite', { className: 'c-footnotes__cite', id: 'note' + footNote.ref }, React.createElement( 'sup', null, React.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 ? React.createElement( 'a', { href: footNote.url }, footNote.url, '.' ) : null ) ); }; FootNote.propTypes = { footNote: FootNoteShape.isRequired }; var ArticleFootNotes = function ArticleFootNotes(_ref2) { var footNotes = _ref2.footNotes, rest = _objectWithoutProperties(_ref2, ['footNotes']); return React.createElement( 'ol', { className: 'c-footnotes' }, footNotes.map(function (footNote) { return React.createElement(FootNote, _extends({ key: footNote.ref, footNote: footNote }, rest)); }) ); }; ArticleFootNotes.propTypes = { footNotes: PropTypes.arrayOf(FootNoteShape).isRequired }; export default ArticleFootNotes;