Merge branch 'develop' of https://github.com/MR-medreport/MRB2B into develop

This commit is contained in:
Helena
2025-09-10 12:40:23 +03:00
3 changed files with 46 additions and 17 deletions

View File

@@ -1,4 +1,5 @@
import Link from 'next/link'; import Link from 'next/link';
import { redirect } from 'next/navigation';
import { CaretRightIcon } from '@radix-ui/react-icons'; import { CaretRightIcon } from '@radix-ui/react-icons';
import { Scale } from 'lucide-react'; import { Scale } from 'lucide-react';
@@ -14,7 +15,6 @@ import { withI18n } from '~/lib/i18n/with-i18n';
import ComparePackagesModal from '../home/(user)/_components/compare-packages-modal'; import ComparePackagesModal from '../home/(user)/_components/compare-packages-modal';
import { loadAnalysisPackages } from '../home/(user)/_lib/server/load-analysis-packages'; import { loadAnalysisPackages } from '../home/(user)/_lib/server/load-analysis-packages';
import { redirect } from 'next/navigation';
export const generateMetadata = async () => { export const generateMetadata = async () => {
const { t } = await createI18nServerInstance(); const { t } = await createI18nServerInstance();

View File

@@ -6,11 +6,9 @@ import Image from 'next/image';
import { useRouter } from 'next/navigation'; import { useRouter } from 'next/navigation';
import type { AdminProductVariant, StoreProduct } from '@medusajs/types'; import type { AdminProductVariant, StoreProduct } from '@medusajs/types';
import { Button } from '@medusajs/ui';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { handleAddToCart } from '../../../../lib/services/medusaCart.service';
import { toast } from '@kit/ui/sonner';
import { Button } from '@kit/ui/button';
import { import {
Card, Card,
CardContent, CardContent,
@@ -18,12 +16,20 @@ import {
CardFooter, CardFooter,
CardHeader, CardHeader,
} from '@kit/ui/card'; } from '@kit/ui/card';
import { toast } from '@kit/ui/sonner';
import { Spinner } from '@kit/ui/spinner';
import { Trans } from '@kit/ui/trans'; import { Trans } from '@kit/ui/trans';
import { ButtonTooltip } from './ui/button-tooltip';
import { PackageHeader } from './package-header';
import { pathsConfig } from '../config';
export type AnalysisPackageWithVariant = Pick<StoreProduct, 'title' | 'description' | 'subtitle' | 'metadata'> & { import { handleAddToCart } from '~/lib/services/medusaCart.service';
import { pathsConfig } from '../config';
import { PackageHeader } from './package-header';
import { ButtonTooltip } from './ui/button-tooltip';
export type AnalysisPackageWithVariant = Pick<
StoreProduct,
'title' | 'description' | 'subtitle' | 'metadata'
> & {
variantId: string; variantId: string;
nrOfAnalyses: number; nrOfAnalyses: number;
price: number; price: number;
@@ -38,7 +44,7 @@ export default function SelectAnalysisPackage({
countryCode, countryCode,
}: { }: {
analysisPackage: AnalysisPackageWithVariant; analysisPackage: AnalysisPackageWithVariant;
countryCode: string, countryCode: string;
}) { }) {
const router = useRouter(); const router = useRouter();
const { const {
@@ -48,7 +54,14 @@ export default function SelectAnalysisPackage({
const [isAddingToCart, setIsAddingToCart] = useState(false); const [isAddingToCart, setIsAddingToCart] = useState(false);
const { nrOfAnalyses, variantId, title, subtitle = '', description = '', price } = analysisPackage; const {
nrOfAnalyses,
variantId,
title,
subtitle = '',
description = '',
price,
} = analysisPackage;
const handleSelect = async () => { const handleSelect = async () => {
setIsAddingToCart(true); setIsAddingToCart(true);
@@ -58,10 +71,16 @@ export default function SelectAnalysisPackage({
countryCode, countryCode,
}); });
setIsAddingToCart(false); setIsAddingToCart(false);
toast.success(<Trans i18nKey={'order-analysis-package:analysisPackageAddedToCart'} />); toast.success(
<Trans i18nKey={'order-analysis-package:analysisPackageAddedToCart'} />,
);
router.push(pathsConfig.app.cart); router.push(pathsConfig.app.cart);
} catch (e) { } catch (e) {
toast.error(<Trans i18nKey={'order-analysis-package:analysisPackageAddToCartError'} />); toast.error(
<Trans
i18nKey={'order-analysis-package:analysisPackageAddToCartError'}
/>,
);
setIsAddingToCart(false); setIsAddingToCart(false);
console.error(e); console.error(e);
} }
@@ -87,7 +106,7 @@ export default function SelectAnalysisPackage({
<CardContent className="space-y-1 text-center"> <CardContent className="space-y-1 text-center">
<PackageHeader <PackageHeader
title={title} title={title}
tagColor='bg-cyan' tagColor="bg-cyan"
analysesNr={t('product:nrOfAnalyses', { nr: nrOfAnalyses })} analysesNr={t('product:nrOfAnalyses', { nr: nrOfAnalyses })}
language={language} language={language}
price={price} price={price}
@@ -95,8 +114,15 @@ export default function SelectAnalysisPackage({
<CardDescription>{subtitle}</CardDescription> <CardDescription>{subtitle}</CardDescription>
</CardContent> </CardContent>
<CardFooter> <CardFooter>
<Button className="w-full text-[10px] sm:text-sm" onClick={handleSelect} isLoading={isAddingToCart}> <Button
{!isAddingToCart && <Trans i18nKey='order-analysis-package:selectThisPackage' />} className="w-full text-[10px] sm:text-sm"
onClick={handleSelect}
>
{isAddingToCart ? (
<Spinner />
) : (
<Trans i18nKey="order-analysis-package:selectThisPackage" />
)}
</Button> </Button>
</CardFooter> </CardFooter>
</Card> </Card>

View File

@@ -1,7 +1,10 @@
{ {
"extends": "@kit/tsconfig/base.json", "extends": "@kit/tsconfig/base.json",
"compilerOptions": { "compilerOptions": {
"tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json",
"paths": {
"~/lib/*": ["../../lib/*"]
}
}, },
"include": ["*.ts", "src"], "include": ["*.ts", "src"],
"exclude": ["node_modules"] "exclude": ["node_modules"]