parent
1b61e404b4
commit
43daf0be85
@ -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;
|
||||
|
Loading…
Reference in new issue