import { JSX } from 'react'; import { StoreProduct } from '@medusajs/types'; import { QuestionMarkCircledIcon } from '@radix-ui/react-icons'; import { VisuallyHidden } from '@radix-ui/react-visually-hidden'; import { X } from 'lucide-react'; import { PackageHeader } from '@kit/shared/components/package-header'; import { AnalysisPackageWithVariant } from '@kit/shared/components/select-analysis-package'; import { InfoTooltip } from '@kit/shared/components/ui/info-tooltip'; 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 { CheckWithBackground } from './check-with-background'; import ComparePackagesAddToCartButtons from './compare-packages-add-to-cart-buttons'; import DefaultPackageFeaturesRows from './default-package-features-rows'; export type AnalysisPackageElement = Pick< StoreProduct, 'title' | 'id' | 'description' > & { isIncludedInStandard: boolean; isIncludedInStandardPlus: boolean; isIncludedInPremium: boolean; }; const PackageTableHead = async ({ product, }: { product: AnalysisPackageWithVariant; }) => { const { t, language } = await createI18nServerInstance(); const { title, price, nrOfAnalyses } = product; return ( ); }; const ComparePackagesModal = async ({ analysisPackages, analysisPackageElements, triggerElement, countryCode, }: { analysisPackages: AnalysisPackageWithVariant[]; analysisPackageElements: AnalysisPackageElement[]; triggerElement: JSX.Element; countryCode: string; }) => { const { t } = await createI18nServerInstance(); const standardPackage = analysisPackages.find(({ isStandard }) => isStandard); const standardPlusPackage = analysisPackages.find( ({ isStandardPlus }) => isStandardPlus, ); const premiumPackage = analysisPackages.find(({ isPremium }) => isPremium); if (!standardPackage || !standardPlusPackage || !premiumPackage) { return null; } return ( {triggerElement}

{t('common:close')}

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

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

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

{analysisPackageElements.map( ({ title, id, description, isIncludedInStandard, isIncludedInStandardPlus, isIncludedInPremium, }) => { if (!title) { return null; } return ( {title}{' '} {description && ( } /> )} {isIncludedInStandard && } {isIncludedInStandardPlus && ( )} {isIncludedInPremium && } ); }, )}
); }; export default withI18n(ComparePackagesModal);