'use client'; import Link from 'next/link'; import type { AccountWithParams } from '@/packages/features/accounts/src/server/api'; import { Database } from '@/packages/supabase/src/database.types'; import { BlendingModeIcon, RulerHorizontalIcon } from '@radix-ui/react-icons'; import { Activity, Clock9, Droplets, Pill, Scale, TrendingUp, User, } from 'lucide-react'; import { InfoTooltip } from '@kit/shared/components/ui/info-tooltip'; import { getPersonParameters } from '@kit/shared/utils'; import { Button } from '@kit/ui/button'; import { Card, CardContent, CardDescription, CardFooter, CardHeader, } from '@kit/ui/card'; import { Trans } from '@kit/ui/trans'; import { cn } from '@kit/ui/utils'; import { BmiCategory } from '~/lib/types/bmi'; import { bmiFromMetric, getBmiBackgroundColor, getBmiStatus, } from '~/lib/utils'; const cards = ({ gender, age, height, weight, bmiStatus, }: { gender?: string; age?: number; height?: number | null; weight?: number | null; bmiStatus: BmiCategory | null; }) => [ { title: 'dashboard:gender', description: gender ?? 'dashboard:male', icon: , iconBg: 'bg-success', }, { title: 'dashboard:age', description: age ? `${age}` : '-', icon: , iconBg: 'bg-success', }, { title: 'dashboard:height', description: height ? `${height}cm` : '-', icon: , iconBg: 'bg-success', }, { title: 'dashboard:weight', description: weight ? `${weight}kg` : '-', icon: , iconBg: 'bg-success', }, { title: 'dashboard:bmi', description: bmiFromMetric(weight || 0, height || 0).toString(), icon: , iconBg: getBmiBackgroundColor(bmiStatus), }, { title: 'dashboard:bloodPressure', description: '-', icon: , iconBg: 'bg-warning', }, { title: 'dashboard:cholesterol', description: '-', icon: , iconBg: 'bg-destructive', }, { title: 'dashboard:ldlCholesterol', description: '-', icon: , iconBg: 'bg-warning', }, // { // title: 'Score 2', // description: 'Normis', // icon: , // iconBg: 'bg-success', // }, // { // title: 'dashboard:smoking', // description: 'dashboard:respondToQuestion', // descriptionColor: 'text-primary', // icon: ( // // ), // cardVariant: 'gradient-success' as CardProps['variant'], // }, ]; const dummyRecommendations = [ { icon: , color: 'bg-cyan/10 text-cyan', title: 'Kolesterooli kontroll', description: 'HDL-kolestrool', tooltipContent: 'Selgitus', price: '20,00 €', buttonText: 'Telli', href: '/home/booking', }, { icon: , color: 'bg-primary/10 text-primary', title: 'Kolesterooli kontroll', tooltipContent: 'Selgitus', description: 'LDL-Kolesterool', buttonText: 'Broneeri', href: '/home/booking', }, { icon: , color: 'bg-destructive/10 text-destructive', title: 'Vererõhu kontroll', tooltipContent: 'Selgitus', description: 'Score-Risk 2', price: '20,00 €', buttonText: 'Telli', href: '/home/booking', }, ]; export default function Dashboard({ account, bmiThresholds, }: { account: AccountWithParams; bmiThresholds: Omit< Database['medreport']['Tables']['bmi_thresholds']['Row'], 'id' >[]; }) { const params = getPersonParameters(account.personal_code!); const bmiStatus = getBmiStatus(bmiThresholds, { age: params?.age || 0, height: account.account_params?.[0]?.height || 0, weight: account.account_params?.[0]?.weight || 0, }); return ( <>
{cards({ gender: params?.gender, age: params?.age, height: account.account_params?.[0]?.height, weight: account.account_params?.[0]?.weight, bmiStatus, }).map( ({ title, description, icon, iconBg, // cardVariant, // descriptionColor, }) => (
{icon}
), )}

{dummyRecommendations.map( ( { icon, color, title, description, tooltipContent, price, buttonText, href, }, index, ) => { return (
{icon}
{title}

{description}

{price}

{href ? ( ) : ( )}
); }, )}
); }