import useCart from '@framework/cart/use-cart' import useUpdateUpdateAddress from '@framework/customer/address/use-update-item' import SidebarLayout from '@components/common/SidebarLayout' import { useUI } from '@components/ui/context' import { Button } from '@components/ui' import { useCheckoutContext } from '../context' const ShippingMethod = () => { const { setSidebarView } = useUI() const { data: cart } = useCart() const { addressFields } = useCheckoutContext() const updateShippingMethod = useUpdateUpdateAddress() const shippingGroup = cart?.checkout?.fulfillmentGroups.find( (group) => group?.type === 'shipping' ) const handleSubmit = async (event: React.ChangeEvent) => { event.preventDefault() await updateShippingMethod({ id: cart!.id, ...addressFields, shippingMethod: { fulfillmentGroupId: cart!.checkout?.fulfillmentGroups[0]?._id ?? 'groupId', id: event.target.shippingMethod.value, }, }) setSidebarView('CHECKOUT_VIEW') } return shippingGroup ? (
setSidebarView('CHECKOUT_VIEW')}>

Shipping Methods

{shippingGroup.availableFulfillmentOptions.map((option) => (
{option?.fulfillmentMethod?.displayName || 'Shipping Method'}
{option?.price.displayAmount}
))}
) : null } export default ShippingMethod