import React, { useState, useEffect } from 'react'; import axios from 'axios'; import { FacebookShareButton, TwitterShareButton, FacebookIcon, WhatsappIcon, TwitterIcon, } from 'react-share'; import Card from './Card'; import analityc from '../util/analytic'; const mapBrands = { Brazil: '๐ง๐ท', Italy: '๐ฎ๐น', US: '๐บ๐ธ', China: '๐จ๐ณ', }; function CountryCard(props) { const [data, setData] = useState({}); useEffect(() => { async function fethData() { const result = await axios.get( `${window.location.origin}/api/report/v1/${props.country}`, ); setData(result.data.data); } fethData(); }, []); function formatNumber(number) { if (number < 10) { return `0${number}`; } return number; } function formatDate(date) { const d = new Date(date); const day = `${formatNumber(d.getDate())}/${formatNumber(d.getMonth() + 1)}/${d.getFullYear()}`; const hour = `${formatNumber(d.getHours())}:${formatNumber(d.getMinutes())}`; return `${day} - ${hour}`; } function shareData() { return (` *Casos coronavรญrus no ${data.country} ${mapBrands[data.country]}* ๐ *Atualizado* ${formatDate(data.updated_at)} โ *${data.confirmed}* Confirmados ๐จ *${data.cases}* Ativos โป๏ธ *${data.recovered}* Recuperados ๐ *${data.deaths}* Mortes ๐ *Fonte:* WHO, CDC, ECDC, NHC and DXY covid19-brazil-api.now.sh/status โ ๏ธ *Evite fake news* โข๏ธ *Sobre a doenรงa* coronavirus.saude.gov.br/index.php/sobre-a-doenca `); } function send() { analityc.event({ category: 'share', action: `share-country-report-${data.country.toLowerCase()}`, }); window.open( `https://api.whatsapp.com/send?text=${encodeURIComponent(shareData())}`, ); } return ( <Card link="" title={`Status ${data.country} ${mapBrands[data.country]}`} > <p> <span role="img" aria-label="check">โ </span> {' '} <strong>{data.confirmed}</strong> {' '} Confirmados {' '} <br /> <span role="img" aria-label="alert">๐จ</span> {' '} <strong>{data.cases}</strong> {' '} Ativos {' '} <br /> <span role="img" aria-label="recovery">โป๏ธ</span> {' '} <strong>{data.recovered}</strong> {' '} Recuperados {' '} <br /> <span role="img" aria-label="death">๐</span> {' '} <strong>{data.deaths}</strong> {' '} Mortes <hr /> <span role="img" aria-label="time">๐</span> {' '} <strong>Atualizado</strong> {' '} {formatDate(data.updated_at)} {' '} <br /> <span role="img" aria-label="chart">๐</span> {' '} <strong>Fonte</strong> {' '} WHO </p> <strong>Compartilhar</strong> <div className="flex-center"> <span className="pointer"> <WhatsappIcon onClick={send} size={48} /> </span> <FacebookShareButton url="https://covid19-brazil-api.now.sh/status" quote={shareData()}> <FacebookIcon size={48} /> </FacebookShareButton> <TwitterShareButton url="https://covid19-brazil-api.now.sh/status" title={shareData().substr(1, 240)}> <TwitterIcon size={48} /> </TwitterShareButton> </div> <style jsx> {` .share-button { width: 100%; background: #202124; color: #4ffa7b; font-weight: 600; border-radius: 30px; font-size: 1.1rem; padding: 8px 0; display: flex; justify-content: center; align-items: center; border: 0; cursor: pointer; transition: background 0.5s; } } .share-button img { margin-left: 16px } .pointer { cursor: pointer; } `} </style> </Card> ); } export default CountryCard;