Code coverage report for src/components/time-difference.cjsx

Statements: 33.33% (6 / 18)      Branches: 0% (0 / 6)      Functions: 33.33% (1 / 3)      Lines: 33.33% (6 / 18)      Ignored: none     

All files » src/components/ » time-difference.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                                                                                
var React, TimeStore, moment;
 
moment = require('moment');
 
TimeStore = require('../flux/time').TimeStore;
 
React = require('react');
 
module.exports = React.createClass({
  displayName: 'TimeDifference',
  propTypes: {
    date: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.instanceOf(Date)]).isRequired,
    compareWith: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.instanceOf(Date)]),
    compare: React.PropTypes.oneOf(['from', 'to']),
    toleranceMS: React.PropTypes.number,
    defaultText: React.PropTypes.string
  },
  getDefaultProps: function() {
    return {
      compare: 'from',
      customSuffix: void 0,
      toleranceMS: 60000,
      defaultText: 'just now'
    };
  },
  shouldRenderDifference: function() {
    var compareWith, date, ref, toleranceMS;
    ref = this.props, date = ref.date, compareWith = ref.compareWith, toleranceMS = ref.toleranceMS;
    compareWith || (compareWith = TimeStore.getNow());
    return Math.abs(moment(date).diff(compareWith)) > toleranceMS;
  },
  render: function() {
    var compare, compareWith, customSuffix, date, defaultText, differenceText, ref;
    ref = this.props, date = ref.date, compareWith = ref.compareWith, compare = ref.compare, customSuffix = ref.customSuffix, defaultText = ref.defaultText;
    differenceText = defaultText;
    if (this.shouldRenderDifference()) {
      differenceText = moment(date)[compare](compareWith, customSuffix != null);
      if (customSuffix != null) {
        differenceText += customSuffix;
      }
    }
    return React.createElement("span", null, differenceText);
  }
});