import React from 'react'; import { Clock, TrendingUp, User } from 'lucide-react'; import { bmiFromMetric } from '~/lib/utils'; import { TeamAccountStatisticsProps } from '../../_components/team-account-statistics'; interface AccountHealthDetailsField { title: string; value: string | number; Icon: React.ComponentType<{ size?: number; color?: string; className?: string; }>; normStatus: NormStatus; } export enum NormStatus { CRITICAL = 'CRITICAL', WARNING = 'WARNING', NORMAL = 'NORMAL', } export const getAccountHealthDetailsFields = ( memberParams: TeamAccountStatisticsProps['memberParams'], ): AccountHealthDetailsField[] => { const averageBMI = ( memberParams.reduce((sum, { height, weight }) => { return bmiFromMetric(weight ?? 0, height ?? 0) + sum; }, 0) / memberParams.length ).toFixed(0); return [ { title: 'teams:healthDetails.women', value: `50% (${memberParams.length})`, Icon: User, normStatus: NormStatus.NORMAL, }, { title: 'teams:healthDetails.men', value: `50% (${memberParams.length})`, Icon: User, normStatus: NormStatus.NORMAL, }, { title: 'teams:healthDetails.avgAge', value: '56', Icon: Clock, normStatus: NormStatus.NORMAL, }, { title: 'teams:healthDetails.bmi', value: averageBMI, Icon: TrendingUp, normStatus: NormStatus.WARNING, }, { title: 'teams:healthDetails.cholesterol', value: '6.1', Icon: TrendingUp, normStatus: NormStatus.WARNING, }, { title: 'teams:healthDetails.vitaminD', value: '76', Icon: TrendingUp, normStatus: NormStatus.NORMAL, }, { title: 'teams:healthDetails.smokers', value: '22%', Icon: TrendingUp, normStatus: NormStatus.CRITICAL, }, ]; };