import { Checkbox, FormControlLabel } from '@mui/material'; import { Box } from '@mui/system'; import { useTranslation } from 'next-i18next'; import { useRouter } from 'next/router'; import { setCookie } from 'nookies'; import { useEffect, useState } from 'react'; import { CheckoutData, useCheckoutData, useCheckoutDataUpdate, } from '../../store/checkout-context'; import { stripe } from '../../utils/helpers/stripe'; import { ShippingData as IShippingData } from '../../utils/interface/orderInterface'; import CardContainer from '../cards/card-container/CardContainer'; import DataCard from '../cards/data-card/DataCard'; import { FormValues } from '../forms/shipping-details/ShippingDetailsForm'; import ContentContainer from '../layout/content-wrapper/ContentContainer'; import PageWrapper from '../layout/page-wrapper/PageWrapper'; import StepTitle from '../layout/steps-title/StepTitle'; import PageDescription from '../page-description/PageDescription'; import ButtonGroup from './shipping-btnGroup/ButtonGroup'; import ShippingData from './shipping-data/ShippingData'; import ShippingModal from './shipping-modal/ShippingModal'; const ShippingContent = () => { const { t } = useTranslation('shipping'); const { checkoutStorage } = useCheckoutData(); const { changeContact, changeShippingData } = useCheckoutDataUpdate(); const [open, setOpen] = useState({ isOpen: false, type: '' }); const [checkoutData, setCheckoutData] = useState( {} as CheckoutData ); const router = useRouter(); useEffect(() => { setCheckoutData(checkoutStorage); }, [checkoutStorage]); const handleOpen = (type: string) => setOpen({ isOpen: true, type }); const handleClose = () => setOpen({ isOpen: false, type: '' }); const handleChangeShipping = (values: IShippingData | FormValues) => { changeShippingData(values as IShippingData); handleClose(); }; const handleChangeContact = (values: string) => { changeContact(values); handleClose(); }; const handleStripePayment = () => { stripe({ lineItems: checkoutData.products.map((el) => ({ price: el.product.stripeID, quantity: el.quantity, })), }); setCookie(null, 'review-session', 'active', { maxAge: 3600, expires: new Date(Date.now() + 3600), path: '/', }); }; const handleBackToCart = () => { router.replace('/cart'); }; const mapProductsToDom = () => { return checkoutData?.products?.map((entry, i) => ( )); }; return ( } label={t('shipping:shippingCost')} sx={{ color: 'black', ml: 2 }} /> {mapProductsToDom()} ); }; export default ShippingContent;