| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- import { Button, Grid, Typography } from '@mui/material';
- import { Box } from '@mui/system';
- import { useRouter } from 'next/router';
- import { destroyCookie } from 'nookies';
-
- import { useEffect, useState } from 'react';
- import { postOrder } from '../../requests/products/postOrderRequest';
- import { useStoreUpdate } from '../../store/cart-context';
- import { useCheckoutDataUpdate } from '../../store/checkout-context';
- import StepTitle from '../layout/steps-title/StepTitle';
-
- let initialRender = true;
-
- const ReviewContent = () => {
- const { parseCheckoutValue, clearCheckout } = useCheckoutDataUpdate();
- const { clearCart } = useStoreUpdate();
- const [orderData, setOrderData] = useState(parseCheckoutValue());
-
- const router = useRouter();
-
- useEffect(() => {
- if (initialRender) {
- postOrder(orderData);
- initialRender = false;
- return () => {
- clearCheckout();
- clearCart();
- destroyCookie(null, 'checkout-session', {
- path: '/',
- });
- destroyCookie(null, 'shipping-session', {
- path: '/',
- });
- destroyCookie(null, 'review-session', {
- path: '/',
- });
- };
- }
- }, []);
- return (
- <Grid container spacing={2} sx={{ py: 10, height: '100%', width: '100%' }}>
- <StepTitle
- title="Review"
- breadcrumbsArray={['Cart', 'Checkout', 'Shipping', 'Payment', 'Review']}
- />
- <Grid item xs={12} sx={{ mt: 1 }}>
- <Typography
- sx={{
- width: '100%',
- textAlign: 'center',
- color: 'primary.main',
- fontWeight: 600,
- fontSize: 22,
- }}
- >
- ORDER COMPLETE SUCCESSFULLY
- </Typography>
- </Grid>
- <Grid item xs={12} sx={{ mt: 1 }}>
- <Typography
- sx={{
- width: '100%',
- fontWeight: 600,
- mt: 2,
- textAlign: 'center',
- }}
- >
- Thank you for placing your order with us. We wll get to work on
- sending your order as soon as possible
- </Typography>
- </Grid>
- <Grid item xs={12} sx={{ mt: 1 }}>
- <Typography
- sx={{
- width: '100%',
- textAlign: 'center',
- mt: 2,
- fontSize: 44,
- fontWeight: 600,
- }}
- >
- Order Summary
- </Typography>
- </Grid>
- <Grid item xs={12}>
- <Box
- sx={{
- backgroundColor: '#f2f2f2',
- mt: 4,
- ml: 12,
- width: '85%',
- borderRadius: 2,
- p: 1,
- }}
- >
- <Typography sx={{ fontSize: 18, fontWeight: 600 }}>
- Order placed on: {orderData.time}
- </Typography>
- </Box>
- </Grid>
- <Grid item xs={12}>
- <Box
- sx={{
- backgroundColor: '#f2f2f2',
- ml: 12,
- width: '85%',
- borderRadius: 2,
- p: 1,
- }}
- >
- <Typography sx={{ fontSize: 18, fontWeight: 600 }}>
- Email: {orderData?.shippingAddress?.email}
- </Typography>
- </Box>
- </Grid>
- <Grid item xs={12}>
- <Box
- sx={{
- backgroundColor: '#f2f2f2',
- ml: 12,
- width: '85%',
- borderRadius: 2,
- p: 1,
- }}
- >
- <Typography sx={{ fontSize: 18, fontWeight: 600 }}>
- Total: ${orderData?.totalPrice}
- </Typography>
- </Box>
- </Grid>
- <Grid item xs={12}>
- <Box
- sx={{
- backgroundColor: '#f2f2f2',
- ml: 12,
- width: '85%',
- borderRadius: 2,
- p: 1,
- }}
- >
- <Typography sx={{ fontSize: 18, fontWeight: 600 }}>
- Shipping Address: {orderData?.shippingAddress?.address},{' '}
- {orderData?.shippingAddress?.city},{' '}
- {orderData?.shippingAddress?.country},{' '}
- {orderData?.shippingAddress?.postcode}
- </Typography>
- </Box>
- </Grid>
- <Grid item xs={12} sx={{ mt: 1 }}>
- <Box
- sx={{
- width: '100%',
- display: 'flex',
- justifyContent: 'center',
- mt: 2,
- borderRadius: 2,
- p: 1,
- }}
- >
- <Button
- variant="contained"
- sx={{
- mt: 3,
- mb: 2,
- height: 50,
- width: 150,
- textTransform: 'none',
- backgroundColor: '#CBA213',
- color: 'white',
- mr: 2,
- fontSize: 16,
- }}
- onClick={() => {
- router.push('/');
- }}
- >
- Back to Home
- </Button>
- </Box>
- </Grid>
- </Grid>
- );
- };
-
- export default ReviewContent;
|