diff options
author | Christopher Speller <crspeller@gmail.com> | 2016-03-14 08:50:46 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-03-16 18:02:55 -0400 |
commit | 12896bd23eeba79884245c1c29fdc568cf21a7fa (patch) | |
tree | 4e7f83d3e2564b9b89d669e9f7905ff11768b11a /webapp/components/time_since.jsx | |
parent | 29fe6a3d13c9c7aa490fffebbe5d1b5fdf1e3090 (diff) | |
download | chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.tar.gz chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.tar.bz2 chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.zip |
Converting to Webpack. Stage 1.
Diffstat (limited to 'webapp/components/time_since.jsx')
-rw-r--r-- | webapp/components/time_since.jsx | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/webapp/components/time_since.jsx b/webapp/components/time_since.jsx new file mode 100644 index 000000000..02b0174ae --- /dev/null +++ b/webapp/components/time_since.jsx @@ -0,0 +1,67 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import Constants from 'utils/constants.jsx'; +import * as Utils from 'utils/utils.jsx'; + +import {FormattedRelative, FormattedDate} from 'react-intl'; + +import {Tooltip, OverlayTrigger} from 'react-bootstrap'; + +import React from 'react'; + +export default class TimeSince extends React.Component { + componentDidMount() { + this.intervalId = setInterval(() => { + this.forceUpdate(); + }, Constants.TIME_SINCE_UPDATE_INTERVAL); + } + componentWillUnmount() { + clearInterval(this.intervalId); + } + render() { + if (this.props.sameUser) { + return ( + <time className='post__time'> + {Utils.displayTimeFormatted(this.props.eventTime)} + </time> + ); + } + + const tooltip = ( + <Tooltip id={'time-since-tooltip-' + this.props.eventTime}> + <FormattedDate + value={this.props.eventTime} + month='long' + day='numeric' + year='numeric' + hour12={true} + hour='numeric' + minute='2-digit' + /> + </Tooltip> + ); + + return ( + <OverlayTrigger + delayShow={Constants.OVERLAY_TIME_DELAY} + placement='top' + overlay={tooltip} + > + <time className='post__time'> + <FormattedRelative value={this.props.eventTime}/> + </time> + </OverlayTrigger> + ); + } +} + +TimeSince.defaultProps = { + eventTime: 0, + sameUser: false +}; + +TimeSince.propTypes = { + eventTime: React.PropTypes.number.isRequired, + sameUser: React.PropTypes.bool +}; |