add cart functionality for tto services
This commit is contained in:
@@ -12,13 +12,13 @@ import { getSupabaseServerAdminClient } from '@kit/supabase/server-admin-client'
|
||||
import { createI18nServerInstance } from '~/lib/i18n/i18n.server';
|
||||
import {
|
||||
bookAppointment,
|
||||
getOrderedTtoServices,
|
||||
} from '~/lib/services/connected-online.service';
|
||||
import { FailureReason } from '~/lib/types/connected-online';
|
||||
import { createAnalysisOrder, getAnalysisOrder } from '~/lib/services/order.service';
|
||||
import { sendOrderToMedipost } from '~/lib/services/medipost/medipostPrivateMessage.service';
|
||||
import { getOrderedAnalysisIds } from '~/lib/services/medusaOrder.service';
|
||||
import { AccountWithParams } from '@kit/accounts/types/accounts';
|
||||
import { getOrderedTtoServices } from '~/lib/services/reservation.service';
|
||||
|
||||
const ANALYSIS_PACKAGES_TYPE_HANDLE = 'analysis-packages';
|
||||
const ANALYSIS_TYPE_HANDLE = 'synlab-analysis';
|
||||
|
||||
@@ -8,10 +8,12 @@ import { listProductTypes } from '@lib/data/products';
|
||||
import { Trans } from '@kit/ui/trans';
|
||||
|
||||
import { withI18n } from '~/lib/i18n/with-i18n';
|
||||
|
||||
import { findProductTypeIdByHandle } from '~/lib/utils';
|
||||
|
||||
import { getCartReservations } from '~/lib/services/reservation.service';
|
||||
import Cart from '../../_components/cart';
|
||||
import CartTimer from '../../_components/cart/cart-timer';
|
||||
import { EnrichedCartItem } from '../../_components/cart/types';
|
||||
|
||||
export async function generateMetadata() {
|
||||
const { t } = await createI18nServerInstance();
|
||||
@@ -37,10 +39,6 @@ async function CartPage() {
|
||||
productTypes,
|
||||
'analysis-packages',
|
||||
);
|
||||
const ttoServiceTypeId = findProductTypeIdByHandle(
|
||||
productTypes,
|
||||
'tto-service',
|
||||
);
|
||||
|
||||
const synlabAnalyses =
|
||||
analysisPackagesTypeId && synlabAnalysisTypeId && cart?.items
|
||||
@@ -54,14 +52,11 @@ async function CartPage() {
|
||||
);
|
||||
})
|
||||
: [];
|
||||
const ttoServiceItems =
|
||||
ttoServiceTypeId && cart?.items
|
||||
? cart?.items?.filter((item) => {
|
||||
const productTypeId = item.product?.type_id;
|
||||
return productTypeId && productTypeId === ttoServiceTypeId;
|
||||
})
|
||||
: [];
|
||||
|
||||
let ttoServiceItems: EnrichedCartItem[] = [];
|
||||
if (cart?.items?.length) {
|
||||
ttoServiceItems = await getCartReservations(cart);
|
||||
}
|
||||
const otherItemsSorted = ttoServiceItems.sort((a, b) =>
|
||||
(a.updated_at ?? '') > (b.updated_at ?? '') ? -1 : 1,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user