/* eslint-disable react/jsx-indent-props */ /* eslint-disable import/no-absolute-path */ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { withTracker } from 'meteor/react-meteor-data'; import Chronos from '/imports/ui/components/Chronos/Chronos'; import { withTranslation } from 'react-i18next'; import { dateLongFormat } from '/imports/api/Common/dates'; import './FromNow.scss'; class FromNow extends Component { constructor(props) { super(props); this.state = { when: props.when }; } // state.when just mirrors props.when (was UNSAFE_componentWillReceiveProps) static getDerivedStateFromProps(props, state) { return props.when !== state.when ? { when: props.when } : null; } shouldComponentUpdate(nextProps, nextState) { return !(nextState.when === this.state.when); } thatIs() { return this.props.t('esDecirTalDia', { date: dateLongFormat(this.props.whenDate) }); } render() { return ( {this.state.when} ); } } FromNow.propTypes = { t: PropTypes.func.isRequired, when: PropTypes.string, whenDate: PropTypes.instanceOf(Date) }; /* * const FromNowContainer = withTracker((props) => { * * })(FromNow); * * export default FromNowContainer; * */ export default withTranslation()(withTracker((props) => { const whenDate = props.when; return { when: whenDate ? Chronos.moment(whenDate).fromNow() : null, whenDate }; })(FromNow));