Code coverage report for src/components/navbar/index.cjsx

Statements: 100% (35 / 35)      Branches: 83.33% (5 / 6)      Functions: 100% (8 / 8)      Lines: 100% (35 / 35)      Ignored: none     

All files » src/components/navbar/ » index.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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102                                     54×     54× 54× 54×         303× 303× 303× 266×       150× 150× 150× 150×             45×     54×     53×     99× 99× 99× 99×           99×                                              
var BS, BookLinks, CourseListingStore, CourseName, CourseStore, CurrentUserActions, NotificationsBar, React, Router, ServerErrorMonitoring, UserActionsMenu, _;
 
React = require('react');
 
BS = require('react-bootstrap');
 
Router = require('react-router');
 
_ = require('underscore');
 
CourseName = require('./course-name');
 
ServerErrorMonitoring = require('./server-error-monitoring');
 
UserActionsMenu = require('./user-actions-menu');
 
BookLinks = require('./book-links');
 
NotificationsBar = require('./notifications-bar');
 
CurrentUserActions = require('../../flux/current-user').CurrentUserActions;
 
CourseStore = require('../../flux/course').CourseStore;
 
CourseListingStore = require('../../flux/course-listing').CourseListingStore;
 
module.exports = React.createClass({
  displayName: 'Navigation',
  contextTypes: {
    router: React.PropTypes.func
  },
  componentWillMount: function() {
    return CourseListingStore.ensureLoaded();
  },
  getInitialState: function() {
    var course;
    course = this.getCourseFromParams();
    return {
      course: course
    };
  },
  getCourseFromParams: function() {
    var courseId;
    courseId = this.context.router.getCurrentParams().courseId;
    if (courseId != null) {
      return CourseStore.get(courseId);
    }
  },
  handleCourseChanges: function() {
    var course;
    Eif (this.isMounted()) {
      course = this.getCourseFromParams();
      if (!_.isEqual(course, this.state.course)) {
        return this.setState({
          course: course
        });
      }
    }
  },
  componentDidUpdate: function() {
    return this.handleCourseChanges();
  },
  componentDidMount: function() {
    return CourseStore.on('course.loaded', this.handleCourseChanges);
  },
  componentWillUnmount: function() {
    return CourseStore.off('course.loaded', this.handleCourseChanges);
  },
  render: function() {
    var brand, course, courseId;
    course = this.state.course;
    courseId = this.context.router.getCurrentParams().courseId;
    brand = React.createElement(Router.Link, {
      "to": 'dashboard',
      "className": 'navbar-brand'
    }, React.createElement("i", {
      "className": 'ui-brand-logo'
    }));
    return React.createElement(BS.Navbar, {
      "brand": brand,
      "toggleNavKey": 0.,
      "fixedTop": true,
      "fluid": true
    }, React.createElement(BS.CollapsibleNav, {
      "eventKey": 0.
    }, React.createElement(BS.Nav, {
      "navbar": true
    }, React.createElement(CourseName, {
      "course": course
    }), React.createElement(BookLinks, {
      "courseId": courseId
    })), React.createElement(BS.Nav, {
      "right": true,
      "navbar": true
    }, React.createElement(UserActionsMenu, {
      "courseId": courseId,
      "course": this.getCourseFromParams()
    }))), React.createElement(ServerErrorMonitoring, null), React.createElement(NotificationsBar, null));
  }
});