import React, { useState, useEffect } from 'react'; import { withRouter, useParams } from 'react-router-dom'; import axios from "axios"; import './Flow.css'; import { formatTime, timestampToDate } from "../common/formatting"; import {errorToast} from "../common/errorHelpers"; const WorkFlow = (props) => { const { homie_id } = useParams(); const [work, setWork] = useState([]); useEffect( () => { (async () => { try { const response = await axios.get(`/api/work?homie_id=${parseInt(homie_id)}`); if (response.status === 200 && response.data){ setWork(response.data); } } catch (e) { errorToast(); } })(); }, [homie_id]); const dateBlock = (timestamp) => { timestampToDate(timestamp) } const flowData = work.map( (singleWorkData, index) => (
  • { singleWorkData.description }
    { dateBlock(singleWorkData['created_at']) }
    0 ? 'amount-green' : ''}`}>{ formatTime(singleWorkData.amount) }
  • )); const totalStats = () => { const totalCount = work.length; const firstFlowRow = totalCount > 0 ? work[0] : undefined; const lastFlowRow = totalCount > 0 ? work[work.length - 1] : undefined; const totalFlow = work.reduce((sum, record) => sum + parseInt(record.amount), 0); const fromDate = lastFlowRow ? timestampToDate(lastFlowRow['created_at']) : ''; const toDate = firstFlowRow ? timestampToDate(firstFlowRow['created_at']) : ''; return (

    {`${totalCount} Records`}{` • ${fromDate} - ${toDate}`}
    Total work: {formatTime(totalFlow)}
    ) } return (
    { totalStats() }
    ); } export default withRouter(WorkFlow);