import React from 'react'; import MultiTypeChart from './truckRatesComponents/multitypeChart'; import util from '../lib/util'; import { RateData, TruckRatesTranslatedWords } from './truckRatesComponents/type'; import constants from '../lib/common/constants'; interface Props { period: number selectedTruckType: string; rateData: RateData[]; showRatePerTon: boolean; onPeriodChange: Function; translatedWords?: TruckRatesTranslatedWords } export const DailyRates = (props: Props) => { const { rateData, onPeriodChange, showRatePerTon, period: _period, selectedTruckType, translatedWords } = props; const { tonAbbrev = 'Ton.', minAbbrev = 'Min.', maxAbbrev = 'Max.', avgAbbrev = 'Avg.', ratePerTonAbbrev = 'Rate per ton.', } = translatedWords || {} const [period, setPeriod] = React.useState(_period || 365); const transport_service = selectedTruckType as keyof typeof constants.tonType; const averageTon = constants.tonType[transport_service]?.ton || 15; const noRates = !rateData?.length; const frieght = rateData?.map((d: any) => d.customer_price); const rateSum = frieght?.reduce((a: number, v: number) => a + v, 0); const avgRate = noRates ? 0 : (Math.round(rateSum / rateData?.length / 100) * 100).toFixed(0); const minRate = noRates ? 0 : Math.min(...frieght); const maxRate = noRates ? 0 : Math.max(...frieght); const handleItemChange = (value: number) => { setPeriod(value); onPeriodChange(value) }; const periodFilter = [ { id: '1Y', value: 365 }, { id: '6M', value: 180 }, { id: '1M', value: 30 }, ]; return (
    {periodFilter.map((p: { id: string; value: number }) => { return (
  • handleItemChange(p.value)} > {p.id}
  • ); })}
{noRates ? null : (
{tonAbbrev} {averageTon}  |  {minAbbrev}₹{minRate}  |  {maxAbbrev}₹{maxRate}  |  {showRatePerTon &&
} {avgAbbrev}₹{avgRate} {showRatePerTon && ( <>  |  {ratePerTonAbbrev}₹ {util.roundedBy50(Number(avgRate) / averageTon) || ''} )}
)}
); };