/* eslint-disable import/no-absolute-path */ /* eslint-disable react/jsx-indent-props */ /* eslint-disable react/jsx-indent */ import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { withTracker } from 'meteor/react-meteor-data'; import { translate, Trans } from 'react-i18next'; import { FormGroup } from 'react-bootstrap'; import { Meteor } from 'meteor/meteor'; import { Bert } from 'meteor/themeteorchef:bert'; import { Map, Circle } from 'react-leaflet'; import Blaze from 'meteor/gadicc:blaze-react-component'; import DefMapLayers from '/imports/ui/components/Maps/DefMapLayers'; import NotFound from '/imports/ui/pages/NotFound/NotFound'; import FiresCollection from '/imports/api/Fires/Fires'; import FromNow from '/imports/ui/components/FromNow/FromNow'; import { dateLongFormat } from '/imports/api/Common/dates'; import '/imports/startup/client/comments'; import FalsePositiveTypes from '/imports/api/FalsePositives/FalsePositiveTypes'; import './Fires.scss'; class Fire extends React.Component { constructor(props) { super(props); this.state = { when: props.when }; } componentWillReceiveProps(nextProps) { if (this.props.when !== nextProps.when) { // console.log(`Next when ${nextProps.when}`); this.setState({ when: nextProps.when }); } } shouldComponentUpdate(nextProps, nextState) { return !(nextState.when === this.state.when); } onTypeSelect(key) { // console.log(key); Meteor.call('falsePositives.insert', this.props.fire._id, key, (error) => { if (error) { // console.log(error); Bert.alert(this.props.t(error.reason), 'danger'); } else { Bert.alert(this.props.t('Tomamos nota, ¡gracias por colaborar!'), 'success'); } }); } render() { const { loading, fire, t } = this.props; if (fire && fire.when) { this.dateLongFormat = dateLongFormat(fire.when); } return (fire ? (
{!loading &&

{fire.address ? t('Información adicional sobre fuego detectado en {{where}} el {{when}}', { where: fire.address, when: this.dateLongFormat }) : t('Información adicional sobre fuego detectado el {{when}}', { when: this.dateLongFormat })}

{ this.fireMap = map; }} animate sleep={false} center={[fire.lat, fire.lon]} className="fire-leaflet-container" zoom={12} >

{t('Coordenadas:')} {fire.lat}, {fire.lon}

{(fire.type === 'modis' || fire.type === 'viirs') &&

Fuego detectado por satélites de la NASA

} {(fire.type === 'vecinal') &&

Fuego notificado por uno de nuestros usuarios/as

} {(fire.type !== 'vecinal') &&
{t('¿No es un fuego forestal?')}
Indícanos de que tipo de fuego se trata y ayúdanos así a mejorar nuestras notificaciones:
{Object.keys(FalsePositiveTypes).map(key => ( )) }
}

{t('Comentarios')}

{t('Puedes añadir un comentario si tienes información adicional sobre este fuego.')} {' '} {t('Por ejemplo:')}
  • {t('si conoces esta zona y cómo acceder al fuego (esto puede de ser de ayuda para apagarlo si sigue activo o para investigarlo en un futuro)')}
  • {t('si conoces el motivo por el que comenzó el fuego')}
  • {t('si quieres denunciar algún tipo de ilegalidad, incluso anónimamente')}
  • {t('o cualquier otra información')}
}
) : ); } } Fire.propTypes = { t: PropTypes.func.isRequired, loading: PropTypes.bool.isRequired, when: PropTypes.instanceOf(Date), fire: PropTypes.object }; Fire.defaultProps = { }; // export default translate([], { wait: true })(withTracker((props) => { const FireContainer = withTracker(({ match }) => { const fireEncrypt = match.params.id; const subscription = Meteor.subscribe('fireFromHash', fireEncrypt); // console.log(`Subs ready: ${subscription.ready()}, fire: ${JSON.stringify(FiresCollection.findOne())}`); return { loading: !subscription.ready(), fire: FiresCollection.findOne(), when: subscription.ready() ? FiresCollection.findOne().when : null }; })(Fire); // export default FireContainer; export default translate([], { wait: true })(FireContainer);