ndla-ui
Version:
UI component library for NDLA.
70 lines (60 loc) • 2.25 kB
JavaScript
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;