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 { PackageHeader } from '@kit/shared/components/package-header'; import { InfoTooltip } from '@kit/shared/components/ui/info-tooltip'; import { StoreProduct } from '@medusajs/types'; import { getAnalysisElementMedusaProductIds } from '@/utils/medusa-product'; import { withI18n } from '@/lib/i18n/with-i18n'; const CheckWithBackground = () => { return (
); }; const PackageTableHead = async ({ product, nrOfAnalyses }: { product: StoreProduct, nrOfAnalyses: number }) => { const { t, language } = await createI18nServerInstance(); const variant = product.variants?.[0]; const titleKey = product.title; const price = variant?.calculated_price?.calculated_amount ?? 0; return ( ) } const ComparePackagesModal = async ({ analysisPackages, analysisPackageElements, triggerElement, }: { analysisPackages: StoreProduct[]; analysisPackageElements: StoreProduct[]; triggerElement: JSX.Element; }) => { const { t } = 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 = getAnalysisElementMedusaProductIds([standardPackage]); const standardPlusPackageAnalyses = getAnalysisElementMedusaProductIds([standardPlusPackage]); const premiumPackageAnalyses = getAnalysisElementMedusaProductIds([premiumPackage]); return ( {triggerElement}

{t('common:close')}

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

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

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

{analysisPackageElements.map( ( { title, id, description, }, index, ) => { if (!title) { return null; } const includedInStandard = standardPackageAnalyses.includes(id); const includedInStandardPlus = standardPlusPackageAnalyses.includes(id); const includedInPremium = premiumPackageAnalyses.includes(id); return ( {title}{' '} {description && (} />)} {includedInStandard && } {(includedInStandard || includedInStandardPlus) && } {(includedInStandard || includedInStandardPlus || includedInPremium) && } ); })}
); }; export default withI18n(ComparePackagesModal);