medium-draft
Version:
A medium like rich text editor built upon draft-js with an emphasis on eliminating mouse usage by adding relevant keyboard shortcuts
53 lines (40 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.findLinkEntities = undefined;
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _constants = require('../../util/constants');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var findLinkEntities = exports.findLinkEntities = function findLinkEntities(contentBlock, callback, contentState) {
contentBlock.findEntityRanges(function (character) {
var entityKey = character.getEntity();
return entityKey !== null && contentState.getEntity(entityKey).getType() === _constants.Entity.LINK;
}, callback);
};
var Link = function Link(props) {
var contentState = props.contentState,
entityKey = props.entityKey;
var _contentState$getEnti = contentState.getEntity(entityKey).getData(),
url = _contentState$getEnti.url;
return _react2.default.createElement(
'a',
{
className: 'md-link',
href: url,
rel: 'noopener noreferrer',
target: '_blank',
'aria-label': url
},
props.children
);
};
Link.propTypes = {
children: _propTypes2.default.node,
entityKey: _propTypes2.default.string,
contentState: _propTypes2.default.object.isRequired
};
exports.default = Link;