'use client'; import { StoreCart, StoreCartLineItem } from '@medusajs/types'; import { useFormContext } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { toast } from 'sonner'; import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue, } from '@kit/ui/select'; import { Trans } from '@kit/ui/trans'; import { updateCartPartnerLocation } from '../../_lib/server/update-cart-partner-location'; import partnerLocations from './partner-locations.json'; export default function AnalysisLocation({ cart, synlabAnalyses, }: { cart: StoreCart; synlabAnalyses: StoreCartLineItem[]; }) { const { t } = useTranslation('cart'); const { watch, setValue } = useFormContext(); const currentValue = watch('locationId'); const getLocation = (locationId: string) => partnerLocations.find(({ name }) => name === locationId); const selectedLocation = getLocation(currentValue); const handleUpdateCartPartnerLocation = async (locationId: string) => { const promise = updateCartPartnerLocation({ cartId: cart.id, lineIds: synlabAnalyses.map(({ id }) => id), partnerLocationId: locationId, partnerLocationName: getLocation(locationId)?.name ?? '', }); toast.promise(promise, { success: t(`cart:items.analysisLocation.success`), loading: t(`cart:items.analysisLocation.loading`), error: t(`cart:items.analysisLocation.error`), }); }; return (

{selectedLocation && (

{selectedLocation.address}

{selectedLocation.hours}

)}
); }