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 { AnalysisPackageWithVariant } from '@kit/shared/components/select-analysis-package'; import { withI18n } from '~/lib/i18n/with-i18n'; export type AnalysisPackageElement = Pick & { isIncludedInStandard: boolean; isIncludedInStandardPlus: boolean; isIncludedInPremium: boolean; }; const CheckWithBackground = () => { return (
); }; const PackageTableHead = async ({ product }: { product: AnalysisPackageWithVariant }) => { const { t, language } = await createI18nServerInstance(); const { title, price, nrOfAnalyses } = product; return ( ) } const ComparePackagesModal = async ({ analysisPackages, analysisPackageElements, triggerElement, }: { analysisPackages: AnalysisPackageWithVariant[]; analysisPackageElements: AnalysisPackageElement[]; triggerElement: JSX.Element; }) => { 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 && } {(isIncludedInStandard || isIncludedInStandardPlus) && } {(isIncludedInStandard || isIncludedInStandardPlus || isIncludedInPremium) && } ); })}
); }; export default withI18n(ComparePackagesModal);