feat(MED-131): update analyses on package logic

This commit is contained in:
2025-08-04 11:55:23 +03:00
parent c02cb046a5
commit 7c3aa45ec7
9 changed files with 88 additions and 51 deletions

View File

@@ -24,7 +24,7 @@ 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';
import { getAnalysisElementOriginalIds } from '@/utils/medusa-product';
const CheckWithBackground = () => {
return (
@@ -34,6 +34,24 @@ const CheckWithBackground = () => {
);
};
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 (
<TableHead className="py-2">
<PackageHeader
title={t(titleKey)}
tagColor='bg-cyan'
analysesNr={t('product:nrOfAnalyses', { nr: nrOfAnalyses })}
language={language}
price={price}
/>
</TableHead>
)
}
const ComparePackagesModal = async ({
analysisElements,
analysisPackages,
@@ -43,7 +61,7 @@ const ComparePackagesModal = async ({
analysisPackages: StoreProduct[];
triggerElement: JSX.Element;
}) => {
const { t, language } = await createI18nServerInstance();
const { t } = await createI18nServerInstance();
const standardPackage = analysisPackages.find(({ metadata }) => metadata?.analysisPackageTier === 'standard')!;
const standardPlusPackage = analysisPackages.find(({ metadata }) => metadata?.analysisPackageTier === 'standard-plus')!;
@@ -53,9 +71,9 @@ const ComparePackagesModal = async ({
return null;
}
const standardPackageAnalyses = await getAnalysisElementOriginalIds([standardPackage]);
const standardPlusPackageAnalyses = await getAnalysisElementOriginalIds([standardPlusPackage]);
const premiumPackageAnalyses = await getAnalysisElementOriginalIds([premiumPackage]);
const standardPackageAnalyses = getAnalysisElementOriginalIds([standardPackage]);
const standardPlusPackageAnalyses = getAnalysisElementOriginalIds([standardPlusPackage]);
const premiumPackageAnalyses = getAnalysisElementOriginalIds([premiumPackage]);
return (
<Dialog>
@@ -86,25 +104,9 @@ const ComparePackagesModal = async ({
<TableHeader>
<TableRow>
<TableHead></TableHead>
{analysisPackages.map(
(product) => {
const variant = product.variants?.[0];
const titleKey = product.title;
const price = variant?.calculated_price?.calculated_amount ?? 0;
return (
<TableHead key={titleKey} className="py-2">
<PackageHeader
title={t(titleKey)}
tagColor='bg-cyan'
analysesNr={t('product:nrOfAnalyses', {
nr: product?.metadata?.nrOfAnalyses ?? 0,
})}
language={language}
price={price}
/>
</TableHead>
)
})}
<PackageTableHead product={standardPackage} nrOfAnalyses={standardPackageAnalyses.length} />
<PackageTableHead product={standardPlusPackage} nrOfAnalyses={standardPlusPackageAnalyses.length} />
<PackageTableHead product={premiumPackage} nrOfAnalyses={premiumPackageAnalyses.length} />
</TableRow>
</TableHeader>
<TableBody>