var NewTabLink, React, _;
React = require('react');
_ = require('underscore');
NewTabLink = React.createClass({
displayName: 'NewTabLink',
contextTypes: {
router: React.PropTypes.func
},
getDefaultProps: function() {
return {
target: '_blank'
};
},
propTypes: {
to: React.PropTypes.string.isRequired,
children: React.PropTypes.node.isRequired,
params: React.PropTypes.object,
query: React.PropTypes.object,
target: React.PropTypes.string
},
getLinkProps: function(link) {
var linkProps, transferProps;
linkProps = {
href: link
};
transferProps = _.omit(this.props, ['to', 'params', 'query', 'children']);
return _.extend({}, transferProps, linkProps);
},
render: function() {
var children, link, linkProps, params, query, ref, to;
ref = this.props, to = ref.to, params = ref.params, query = ref.query, children = ref.children;
link = this.context.router.makeHref(to, params, query);
linkProps = this.getLinkProps(link);
return React.createElement("a", React.__spread({}, linkProps), children);
}
});
module.exports = NewTabLink;
|