about summary refs log tree commit diff
path: root/app/assets/javascripts/components/components/relative_timestamp.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/components/components/relative_timestamp.jsx')
-rw-r--r--app/assets/javascripts/components/components/relative_timestamp.jsx68
1 files changed, 20 insertions, 48 deletions
diff --git a/app/assets/javascripts/components/components/relative_timestamp.jsx b/app/assets/javascripts/components/components/relative_timestamp.jsx
index 1de44bb95..96f99cca8 100644
--- a/app/assets/javascripts/components/components/relative_timestamp.jsx
+++ b/app/assets/javascripts/components/components/relative_timestamp.jsx
@@ -1,52 +1,24 @@
-import moment          from 'moment';
-import PureRenderMixin from 'react-addons-pure-render-mixin';
-
-moment.updateLocale('en', {
-  relativeTime : {
-    future: "in %s",
-    past:   "%s",
-    s:  "%ds",
-    m:  "1m",
-    mm: "%dm",
-    h:  "1h",
-    hh: "%dh",
-    d:  "1d",
-    dd: "%dd",
-    M:  "1mo",
-    MM: "%dmo",
-    y:  "1y",
-    yy: "%dy"
-  }
-});
-
-const RelativeTimestamp = React.createClass({
-
-  propTypes: {
-    timestamp: React.PropTypes.string.isRequired,
-    now: React.PropTypes.any
-  },
-
-  mixins: [PureRenderMixin],
-
-  render () {
-    const timestamp = moment(this.props.timestamp);
-    const now       = this.props.now;
-
-    let string = '';
-
-    if (timestamp.isAfter(now)) {
-      string = 'Just now';
-    } else {
-      string = timestamp.from(now);
-    }
-
-    return (
-      <span>
-        {string}
-      </span>
-    );
+import {
+  FormattedMessage,
+  FormattedDate,
+  FormattedRelative
+} from 'react-intl';
+
+const RelativeTimestamp = ({ timestamp, now }) => {
+  const diff = (new Date(now)) - (new Date(timestamp));
+
+  if (diff < 0) {
+    return <FormattedMessage id='relative_time.just_now' defaultMessage='Just now' />
+  } else if (diff > (3600 * 24 * 7 * 1000)) {
+    return <FormattedDate value={timestamp} />
+  } else {
+    return <FormattedRelative value={timestamp} initialNow={now} updateInterval={0} />
   }
+};
 
-});
+RelativeTimestamp.propTypes = {
+  timestamp: React.PropTypes.string.isRequired,
+  now: React.PropTypes.any
+};
 
 export default RelativeTimestamp;