Code coverage report for src/components/new-tab-link.cjsx

Statements: 100% (15 / 15)      Branches: 100% (0 / 0)      Functions: 100% (3 / 3)      Lines: 100% (15 / 15)      Ignored: none     

All files » src/components/ » new-tab-link.cjsx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43                                       188× 188×     188× 188×     188× 188× 188× 188× 188×          
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;