datocms-plugin-netlify-identity
Version:
A plugin that nicely displays Netlify identity user info instead of the raw ID
43 lines (35 loc) • 796 B
JSX
import React from 'react';
import PropTypes from 'prop-types';
import distanceInWords from 'date-fns/distance_in_words';
import format from 'date-fns/format';
export default class AutoUpdateTime extends React.Component {
static propTypes = {
value: PropTypes.instanceOf(Date).isRequired,
};
componentDidMount() {
this.ticker = setInterval(this.invalidate, 3000);
}
componentWillUnmount() {
if (this.ticker) {
clearInterval(this.ticker);
}
}
invalidate = () => {
this.forceUpdate();
}
render() {
const { value } = this.props;
if (!value) {
return '';
}
return (
<span>
{format(value, 'MMM D')}
(
{distanceInWords(new Date(), value)}
ago)
</span>
);
}
}