'use client'; import Price from 'components/price'; import { CORE_VARIANT_ID_KEY, CORE_WAIVER, DELIVERY_OPTION_KEY } from 'lib/constants'; import { Money, ProductVariant } from 'lib/shopify/types'; import { useSearchParams } from 'next/navigation'; import { deliveryOptions } from './delivery'; type PriceSummaryProps = { variants: ProductVariant[]; defaultPrice: Money; }; const PriceSummary = ({ variants, defaultPrice }: PriceSummaryProps) => { const searchParams = useSearchParams(); const variant = variants.find((variant) => variant.selectedOptions.every( (option) => option.value === searchParams.get(option.name.toLowerCase()) ) ); const price = variant?.price.amount || defaultPrice.amount; const selectedCoreChargeOption = searchParams.get(CORE_VARIANT_ID_KEY); const selectedDeliveryOption = searchParams.get(DELIVERY_OPTION_KEY); const deliveryPrice = deliveryOptions.find((option) => option.key === selectedDeliveryOption)?.price ?? 0; const currencyCode = variant?.price.currencyCode || defaultPrice.currencyCode; const corePrice = selectedCoreChargeOption === CORE_WAIVER ? 0 : variant?.coreCharge?.amount ?? 0; const totalPrice = Number(price) + deliveryPrice + Number(corePrice); return (
Our Price
{`Core Charge ${selectedCoreChargeOption === CORE_WAIVER ? '(Waived for 30 days)' : ''}`} {selectedCoreChargeOption === CORE_WAIVER ? ( {`+$0.00`} ) : ( )}
{`Flat Rate Shipping (${selectedDeliveryOption} address)`}

To Pay Today
); }; export default PriceSummary;