diff --git a/internal_packages/message-list/lib/message-item.cjsx b/internal_packages/message-list/lib/message-item.cjsx index b4440152d..b59571bc4 100644 --- a/internal_packages/message-list/lib/message-item.cjsx +++ b/internal_packages/message-list/lib/message-item.cjsx @@ -4,7 +4,7 @@ _ = require 'underscore' EmailFrame = require('./email-frame').default MessageParticipants = require "./message-participants" MessageItemBody = require "./message-item-body" -MessageTimestamp = require "./message-timestamp" +MessageTimestamp = require("./message-timestamp").default MessageControls = require './message-controls' {Utils, Actions, diff --git a/internal_packages/message-list/lib/message-timestamp.cjsx b/internal_packages/message-list/lib/message-timestamp.cjsx deleted file mode 100644 index 5629601dd..000000000 --- a/internal_packages/message-list/lib/message-timestamp.cjsx +++ /dev/null @@ -1,29 +0,0 @@ -_ = require 'underscore' -moment = require 'moment-timezone' -React = require 'react' -{DateUtils} = require 'nylas-exports' - -class MessageTimestamp extends React.Component - @displayName: 'MessageTimestamp' - @propTypes: - date: React.PropTypes.object.isRequired, - className: React.PropTypes.string, - isDetailed: React.PropTypes.bool - onClick: React.PropTypes.func - - shouldComponentUpdate: (nextProps, nextState) => - +nextProps.date isnt +@props.date or nextProps.isDetailed isnt @props.isDetailed - - render: => - if @props.isDetailed - formattedDate = DateUtils.mediumTimeString(@props.date) - else - fromattedDate = DateUtils.shortTimeString(@props.date) -
{formattedDate}
- - # Stubbable for testing. Returns a `moment` - _today: -> moment.tz(DateUtils.timeZone) - -module.exports = MessageTimestamp diff --git a/internal_packages/message-list/lib/message-timestamp.es6 b/internal_packages/message-list/lib/message-timestamp.es6 new file mode 100644 index 000000000..eb78d198e --- /dev/null +++ b/internal_packages/message-list/lib/message-timestamp.es6 @@ -0,0 +1,40 @@ +import React from 'react' +import {DateUtils} from 'nylas-exports' + +class MessageTimestamp extends React.Component { + static displayName = 'MessageTimestamp' + + static propTypes = { + date: React.PropTypes.object.isRequired, + className: React.PropTypes.string, + isDetailed: React.PropTypes.bool, + onClick: React.PropTypes.func, + } + + shouldComponentUpdate(nextProps) { + return ( + nextProps.date !== this.props.date || + nextProps.isDetailed !== this.props.isDetailed + ) + } + + render() { + let formattedDate = null + if (this.props.isDetailed) { + formattedDate = DateUtils.mediumTimeString(this.props.date) + } else { + formattedDate = DateUtils.shortTimeString(this.props.date) + } + return ( +
+ {formattedDate} +
+ ) + } +} + +export default MessageTimestamp diff --git a/internal_packages/message-list/spec/message-item-spec.cjsx b/internal_packages/message-list/spec/message-item-spec.cjsx index 27acd8c8c..c7425cc82 100644 --- a/internal_packages/message-list/spec/message-item-spec.cjsx +++ b/internal_packages/message-list/spec/message-item-spec.cjsx @@ -86,7 +86,7 @@ user_5 = new Contact MessageItem = proxyquire '../lib/message-item', './message-item-body': MessageItemBody -MessageTimestamp = require '../lib/message-timestamp' +MessageTimestamp = require('../lib/message-timestamp').default describe "MessageItem", -> diff --git a/internal_packages/message-list/spec/message-timestamp-spec.cjsx b/internal_packages/message-list/spec/message-timestamp-spec.cjsx index 8a900c84a..8e3b6213d 100644 --- a/internal_packages/message-list/spec/message-timestamp-spec.cjsx +++ b/internal_packages/message-list/spec/message-timestamp-spec.cjsx @@ -2,7 +2,7 @@ moment = require 'moment' React = require "react" ReactDOM = require "react-dom" ReactTestUtils = require 'react-addons-test-utils' -MessageTimestamp = require '../lib/message-timestamp' +MessageTimestamp = require('../lib/message-timestamp').default msgTime = -> moment([2010, 1, 14, 15, 25, 50, 125]) # Feb 14, 2010 at 3:25 PM