import { JSX } from 'react'; import { QuestionMarkCircledIcon } from '@radix-ui/react-icons'; import { VisuallyHidden } from '@radix-ui/react-visually-hidden'; import { Check, X } from 'lucide-react'; import { Dialog, DialogContent, DialogTitle, DialogTrigger, } from '@kit/ui/dialog'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@kit/ui/table'; import { createI18nServerInstance } from '~/lib/i18n/i18n.server'; import { withI18n } from '~/lib/i18n/with-i18n'; import { PackageHeader } from '@/components/package-header'; import { InfoTooltip } from '@/components/ui/info-tooltip'; import { StoreProduct } from '@medusajs/types'; import type { AnalysisElement } from '~/lib/services/analysis-element.service'; import { getAnalysisElementOriginalIds } from '@lib/data/products'; const CheckWithBackground = () => { return (
); }; const ComparePackagesModal = async ({ analysisElements, analysisPackages, triggerElement, }: { analysisElements: AnalysisElement[]; analysisPackages: StoreProduct[]; triggerElement: JSX.Element; }) => { const { t, language } = await createI18nServerInstance(); const standardPackage = analysisPackages.find(({ metadata }) => metadata?.analysisPackageTier === 'standard')!; const standardPlusPackage = analysisPackages.find(({ metadata }) => metadata?.analysisPackageTier === 'standard-plus')!; const premiumPackage = analysisPackages.find(({ metadata }) => metadata?.analysisPackageTier === 'premium')!; if (!standardPackage || !standardPlusPackage || !premiumPackage) { return null; } const standardPackageAnalyses = await getAnalysisElementOriginalIds([standardPackage]); const standardPlusPackageAnalyses = await getAnalysisElementOriginalIds([standardPlusPackage]); const premiumPackageAnalyses = await getAnalysisElementOriginalIds([premiumPackage]); return ( {triggerElement}

{t('common:close')}

} preventAutoFocus > {t('common:comparePackages')}

{t('product:healthPackageComparison.label')}

{t('product:healthPackageComparison.description')}

{analysisPackages.map( (product) => { const variant = product.variants?.[0]; const titleKey = product.title; const price = variant?.calculated_price?.calculated_amount ?? 0; return ( ) })} {analysisElements.map( ( { analysis_name_lab: analysisName, analysis_id_original: analysisId, }, index, ) => { if (!analysisName) { return null; } const includedInStandard = standardPackageAnalyses.includes(analysisId); const includedInStandardPlus = standardPlusPackageAnalyses.includes(analysisId); const includedInPremium = premiumPackageAnalyses.includes(analysisId); return ( {analysisName}{' '} {/* } /> */} {includedInStandard && } {(includedInStandard || includedInStandardPlus) && } {(includedInStandard || includedInStandardPlus || includedInPremium) && } ); })}
); }; export default withI18n(ComparePackagesModal);