Better stats in FiresMap

This commit is contained in:
vjrj 2018-05-21 15:43:43 +02:00
parent e36dda74db
commit bea2703f2f
4 changed files with 46 additions and 11 deletions

View file

@ -8,19 +8,49 @@ import { translate, Trans } from 'react-i18next';
import FromNow from '/imports/ui/components/FromNow/FromNow'; import FromNow from '/imports/ui/components/FromNow/FromNow';
class FireStats extends Component { class FireStats extends Component {
constructor(props) {
super(props);
this.state = {
lastFireDetected: props.lastFireDetected,
lastCheck: props.lastCheck,
loadingAll: props.loadingAll
};
}
componentWillReceiveProps(nextProps) {
if (this.props.lastCheck !== nextProps.lastCheck ||
this.props.lastFireDetected !== nextProps.lastFireDetected ||
this.props.loadingAll !== nextProps.loadingAll
) {
this.setState({
lastFireDetected: nextProps.lastFireDetected,
lastCheck: nextProps.lastCheck,
loadingAll: nextProps.loadingAll
});
}
}
shouldComponentUpdate(nextProps, nextState) {
return !(nextState.lastCheck === this.state.lastCheck &&
nextState.lastFireDetected === this.state.lastFireDetected &&
nextState.loadingAll === this.state.loadingAll);
}
render() { render() {
return ( if (this.state.loadingAll) return (<Fragment><br /><em><Trans>Actualizando...</Trans></em></Fragment>);
<Fragment> if (this.state.lastCheck && !this.state.lastFireDetected) {
{ this.props.lastCheck && this.props.lastFireDetected ? return (<Fragment><br /><Trans>Actualizado <FromNow when={this.state.lastCheck} />.</Trans></Fragment>);
<Trans>Actualizado <FromNow when={this.props.lastCheck} />, último fuego detectado <FromNow when={this.props.lastFireDetected.when} />.</Trans> }
: '' } if (this.state.lastCheck && this.state.lastFireDetected) {
</Fragment> return (<Fragment><br /><Trans>Actualizado <FromNow when={this.state.lastCheck} />, último fuego detectado <FromNow when={this.state.lastFireDetected.when} />.</Trans></Fragment>);
); }
return (<Fragment />);
} }
} }
FireStats.propTypes = { FireStats.propTypes = {
lastFireDetected: PropTypes.object, lastFireDetected: PropTypes.object,
loadingAll: PropTypes.bool.isRequired,
lastCheck: PropTypes.instanceOf(Date) lastCheck: PropTypes.instanceOf(Date)
}; };

View file

@ -245,8 +245,8 @@ class FiresMap extends React.Component {
<Col xs={12} sm={6} md={6} lg={6} > <Col xs={12} sm={6} md={6} lg={6} >
<p className="firesmap-legend"> <p className="firesmap-legend">
{ (this.props.activefires.length + this.props.firealerts.length) === 0 ? { (this.props.activefires.length + this.props.firealerts.length) === 0 ?
<Fragment><Trans parent="span" i18nKey="noActiveFireInMapCount">No hay fuegos activos en esta zona del mapa. <strong>{{ countTotal: this.props.activefirestotal }}</strong> fuegos activos en el mundo.</Trans> <FireStats {... this.props} /></Fragment> : <Fragment><Trans parent="span" i18nKey="noActiveFireInMapCount">No hay fuegos activos en esta zona del mapa. <strong>{{ countTotal: this.props.activefirestotal }}</strong> fuegos activos en el mundo.</Trans> <FireStats loadingAll={loading} {... this.props} /></Fragment> :
<Fragment><Trans parent="span" i18nKey="activeFireInMapCount">En rojo, <strong>{{ count: this.props.activefires.length + this.props.firealerts.length }}</strong> fuegos activos. <strong>{{ countTotal: this.props.activefirestotal }}</strong> fuegos activos en el mundo.</Trans> <FireStats {... this.props} /></Fragment> <Fragment><Trans parent="span" i18nKey="activeFireInMapCount">En rojo, <strong>{{ count: this.props.activefires.length + this.props.firealerts.length }}</strong> fuegos activos. <strong>{{ countTotal: this.props.activefirestotal }}</strong> fuegos activos en el mundo.</Trans> <FireStats loadingAll={loading} {... this.props} /></Fragment>
} }
</p> </p>
{isNotHomeAndMobile() && this.props.firealerts.length > 0 && {isNotHomeAndMobile() && this.props.firealerts.length > 0 &&

View file

@ -167,6 +167,7 @@
"Verifica tu dirección de correo": "Verify Your Email Address", "Verifica tu dirección de correo": "Verify Your Email Address",
"Zonas vigiladas": "Monitored areas", "Zonas vigiladas": "Monitored areas",
"En verde, las zonas vigiladas por nuestros usuari@s actualmente": "In green, the areas monitored by our users currently", "En verde, las zonas vigiladas por nuestros usuari@s actualmente": "In green, the areas monitored by our users currently",
"Actualizado <1></1>.": "Updated <1></1>.",
"Actualizado <1></1>, último fuego detectado <3></3>.": "Updated <1></1>, last fire detected <3></3>.", "Actualizado <1></1>, último fuego detectado <3></3>.": "Updated <1></1>, last fire detected <3></3>.",
"Información adicional sobre fuego": "Additional information about fire", "Información adicional sobre fuego": "Additional information about fire",
"CO2emisions": "Did you know that wildfires <1>produce as much CO² as cars</1> and <3>about ⅕ of all our carbon emissions</3>?", "CO2emisions": "Did you know that wildfires <1>produce as much CO² as cars</1> and <3>about ⅕ of all our carbon emissions</3>?",
@ -248,5 +249,6 @@
"Note: Cloud cover might obscure active fire detections.", "Note: Cloud cover might obscure active fire detections.",
"Hay más información sobre un fuego": "Hay más información sobre un fuego":
"There is more information about a fire", "There is more information about a fire",
"esDecirTalDia": "That is on {{date}}" "esDecirTalDia": "That is on {{date}}",
"Actualizando...": "Updating..."
} }

View file

@ -237,6 +237,7 @@
"Verifica tu dirección de correo", "Verifica tu dirección de correo",
"Zonas vigiladas": "Zonas vigiladas", "Zonas vigiladas": "Zonas vigiladas",
"En verde, las zonas vigiladas por nuestros usuari@s actualmente": "En verde, las zonas vigiladas por nuestros usuari@s actualmente", "En verde, las zonas vigiladas por nuestros usuari@s actualmente": "En verde, las zonas vigiladas por nuestros usuari@s actualmente",
"Actualizado <1></1>.": "Actualizado <1></1>.",
"Actualizado <1></1>, último fuego detectado <3></3>.": "Actualizado <1></1>, último fuego detectado <3></3>.", "Actualizado <1></1>, último fuego detectado <3></3>.": "Actualizado <1></1>, último fuego detectado <3></3>.",
"Tomamos nota, ¡gracias por colaborar!": "Tomamos nota, ¡gracias por colaborar!":
"Tomamos nota, ¡gracias por colaborar!", "Tomamos nota, ¡gracias por colaborar!",
@ -333,5 +334,7 @@
"Nota: Las nubes pueden entorpecer la detección de fuegos activos.", "Nota: Las nubes pueden entorpecer la detección de fuegos activos.",
"Hay más información sobre un fuego": "Hay más información sobre un fuego":
"Hay más información sobre un fuego", "Hay más información sobre un fuego",
"esDecirTalDia": "Es decir el {{date}}" "esDecirTalDia": "Es decir el {{date}}",
"Actualizando...":
"Actualizando..."
} }