|  | @@ -0,0 +1,168 @@
 | 
		
	
		
			
			|  | 1 | +import React, { useState } from 'react';
 | 
		
	
		
			
			|  | 2 | +import {
 | 
		
	
		
			
			|  | 3 | +  Box,
 | 
		
	
		
			
			|  | 4 | +  TextField,
 | 
		
	
		
			
			|  | 5 | +  Button,
 | 
		
	
		
			
			|  | 6 | +  Typography,
 | 
		
	
		
			
			|  | 7 | +  MenuItem,
 | 
		
	
		
			
			|  | 8 | +  RadioGroup,
 | 
		
	
		
			
			|  | 9 | +  FormControlLabel,
 | 
		
	
		
			
			|  | 10 | +  Radio,
 | 
		
	
		
			
			|  | 11 | +} from '@mui/material';
 | 
		
	
		
			
			|  | 12 | +import Grid from '@mui/material/Grid2';
 | 
		
	
		
			
			|  | 13 | +
 | 
		
	
		
			
			|  | 14 | +const ShippingForm = () => {
 | 
		
	
		
			
			|  | 15 | +  const [shippingMethod, setShippingMethod] = useState('COD');
 | 
		
	
		
			
			|  | 16 | +
 | 
		
	
		
			
			|  | 17 | +  const handleSubmit = (e) => {
 | 
		
	
		
			
			|  | 18 | +    e.preventDefault();
 | 
		
	
		
			
			|  | 19 | +    // Handle form submission logic
 | 
		
	
		
			
			|  | 20 | +    console.log('Form submitted');
 | 
		
	
		
			
			|  | 21 | +  };
 | 
		
	
		
			
			|  | 22 | +
 | 
		
	
		
			
			|  | 23 | +  const FieldContainer = ({ label, children }) => (
 | 
		
	
		
			
			|  | 24 | +    <Box sx={{ display: 'flex', alignItems: 'center', gap: 2 }}>
 | 
		
	
		
			
			|  | 25 | +      <Typography variant="body1" sx={{ fontWeight: 500, minWidth: 120 }}>
 | 
		
	
		
			
			|  | 26 | +        {label}
 | 
		
	
		
			
			|  | 27 | +      </Typography>
 | 
		
	
		
			
			|  | 28 | +      {children}
 | 
		
	
		
			
			|  | 29 | +    </Box>
 | 
		
	
		
			
			|  | 30 | +  );
 | 
		
	
		
			
			|  | 31 | +
 | 
		
	
		
			
			|  | 32 | +  return (
 | 
		
	
		
			
			|  | 33 | +    <Box
 | 
		
	
		
			
			|  | 34 | +      component="form"
 | 
		
	
		
			
			|  | 35 | +      onSubmit={handleSubmit}
 | 
		
	
		
			
			|  | 36 | +      sx={{
 | 
		
	
		
			
			|  | 37 | +        width: '100%',
 | 
		
	
		
			
			|  | 38 | +        mx: 'auto',
 | 
		
	
		
			
			|  | 39 | +        mt: 4,
 | 
		
	
		
			
			|  | 40 | +        display: 'flex',
 | 
		
	
		
			
			|  | 41 | +        flexDirection: 'column',
 | 
		
	
		
			
			|  | 42 | +        gap: 3,
 | 
		
	
		
			
			|  | 43 | +      }}
 | 
		
	
		
			
			|  | 44 | +    >
 | 
		
	
		
			
			|  | 45 | +      <Grid container>
 | 
		
	
		
			
			|  | 46 | +
 | 
		
	
		
			
			|  | 47 | +        <Grid item size={6} sx={{ gap: 3, display: 'flex', flexDirection: 'column' }}>
 | 
		
	
		
			
			|  | 48 | +          <FieldContainer label="Title">
 | 
		
	
		
			
			|  | 49 | +            <TextField variant="outlined" fullWidth required />
 | 
		
	
		
			
			|  | 50 | +          </FieldContainer>
 | 
		
	
		
			
			|  | 51 | +
 | 
		
	
		
			
			|  | 52 | +          <FieldContainer label="First Name">
 | 
		
	
		
			
			|  | 53 | +            <TextField variant="outlined" fullWidth required />
 | 
		
	
		
			
			|  | 54 | +          </FieldContainer>
 | 
		
	
		
			
			|  | 55 | +
 | 
		
	
		
			
			|  | 56 | +          <FieldContainer label="Last Name">
 | 
		
	
		
			
			|  | 57 | +            <TextField variant="outlined" fullWidth required />
 | 
		
	
		
			
			|  | 58 | +          </FieldContainer>
 | 
		
	
		
			
			|  | 59 | +
 | 
		
	
		
			
			|  | 60 | +          <FieldContainer label="Country">
 | 
		
	
		
			
			|  | 61 | +            <TextField select variant="outlined" fullWidth required>
 | 
		
	
		
			
			|  | 62 | +              <MenuItem value="USA">USA</MenuItem>
 | 
		
	
		
			
			|  | 63 | +              <MenuItem value="Canada">Canada</MenuItem>
 | 
		
	
		
			
			|  | 64 | +              <MenuItem value="UK">UK</MenuItem>
 | 
		
	
		
			
			|  | 65 | +              {/* Add more countries as needed */}
 | 
		
	
		
			
			|  | 66 | +            </TextField>
 | 
		
	
		
			
			|  | 67 | +          </FieldContainer>
 | 
		
	
		
			
			|  | 68 | +        </Grid>
 | 
		
	
		
			
			|  | 69 | +
 | 
		
	
		
			
			|  | 70 | +        <Grid item size={6} sx={{ gap: 3, display: 'flex', flexDirection: 'column', px: 4, height: "100%" }}>
 | 
		
	
		
			
			|  | 71 | +
 | 
		
	
		
			
			|  | 72 | +          <Grid
 | 
		
	
		
			
			|  | 73 | +            container
 | 
		
	
		
			
			|  | 74 | +            spacing={2}
 | 
		
	
		
			
			|  | 75 | +            sx={{ position: 'relative', width: '100%', backgroundColor: '#F7FBFF', textAlign: 'center' }}
 | 
		
	
		
			
			|  | 76 | +          >
 | 
		
	
		
			
			|  | 77 | +            {/* First Section */}
 | 
		
	
		
			
			|  | 78 | +            <Grid
 | 
		
	
		
			
			|  | 79 | +              item
 | 
		
	
		
			
			|  | 80 | +              size={12}
 | 
		
	
		
			
			|  | 81 | +              sx={{ px: 5, py: 3, borderBottom: '1px solid #ddd', mx: "auto" }}
 | 
		
	
		
			
			|  | 82 | +            >
 | 
		
	
		
			
			|  | 83 | +              <Typography variant="h6" sx={{ fontWeight: 500 }}>
 | 
		
	
		
			
			|  | 84 | +                SHIPPING RESTRICTIONS AND DUTIES MAY APPLY
 | 
		
	
		
			
			|  | 85 | +              </Typography>
 | 
		
	
		
			
			|  | 86 | +            </Grid>
 | 
		
	
		
			
			|  | 87 | +
 | 
		
	
		
			
			|  | 88 | +            {/* Second Section */}
 | 
		
	
		
			
			|  | 89 | +            <Grid item size={12} sx={{ px: 5, py: 3, mx: "auto" }}>
 | 
		
	
		
			
			|  | 90 | +              <Typography variant="h6" sx={{ fontWeight: 500 }}>
 | 
		
	
		
			
			|  | 91 | +                NEED HELP?
 | 
		
	
		
			
			|  | 92 | +              </Typography>
 | 
		
	
		
			
			|  | 93 | +              <Typography variant="body2" sx={{ mb: 1 }}>CALL US: +44 (0)10 2345 6789</Typography>
 | 
		
	
		
			
			|  | 94 | +              <Typography variant="body2" sx={{ mb: 1 }}>EMAIL CUSTOMER CARE | SHIPPING INFORMATION</Typography>
 | 
		
	
		
			
			|  | 95 | +              <Typography variant="body2" sx={{ mb: 1 }}>RETURNS & EXCHANGES</Typography>
 | 
		
	
		
			
			|  | 96 | +            </Grid>
 | 
		
	
		
			
			|  | 97 | +          </Grid>
 | 
		
	
		
			
			|  | 98 | +
 | 
		
	
		
			
			|  | 99 | +        </Grid>
 | 
		
	
		
			
			|  | 100 | +
 | 
		
	
		
			
			|  | 101 | +      </Grid>
 | 
		
	
		
			
			|  | 102 | +
 | 
		
	
		
			
			|  | 103 | +      <FieldContainer label="Address Line 1">
 | 
		
	
		
			
			|  | 104 | +        <TextField variant="outlined" fullWidth required multiline rows={3} />
 | 
		
	
		
			
			|  | 105 | +      </FieldContainer>
 | 
		
	
		
			
			|  | 106 | +
 | 
		
	
		
			
			|  | 107 | +      <FieldContainer label="Address Line 2">
 | 
		
	
		
			
			|  | 108 | +        <TextField variant="outlined" fullWidth multiline rows={3} />
 | 
		
	
		
			
			|  | 109 | +      </FieldContainer>
 | 
		
	
		
			
			|  | 110 | +
 | 
		
	
		
			
			|  | 111 | +      <FieldContainer label="City">
 | 
		
	
		
			
			|  | 112 | +        <TextField variant="outlined" fullWidth required />
 | 
		
	
		
			
			|  | 113 | +      </FieldContainer>
 | 
		
	
		
			
			|  | 114 | +
 | 
		
	
		
			
			|  | 115 | +      <FieldContainer label="Country/Province">
 | 
		
	
		
			
			|  | 116 | +        <TextField variant="outlined" fullWidth required />
 | 
		
	
		
			
			|  | 117 | +      </FieldContainer>
 | 
		
	
		
			
			|  | 118 | +
 | 
		
	
		
			
			|  | 119 | +      <FieldContainer label="Postcode/Zip">
 | 
		
	
		
			
			|  | 120 | +        <TextField variant="outlined" fullWidth required />
 | 
		
	
		
			
			|  | 121 | +      </FieldContainer>
 | 
		
	
		
			
			|  | 122 | +
 | 
		
	
		
			
			|  | 123 | +      <FieldContainer label="Telephone">
 | 
		
	
		
			
			|  | 124 | +        <TextField variant="outlined" fullWidth required />
 | 
		
	
		
			
			|  | 125 | +      </FieldContainer>
 | 
		
	
		
			
			|  | 126 | +
 | 
		
	
		
			
			|  | 127 | +      <FieldContainer label="Mobile">
 | 
		
	
		
			
			|  | 128 | +        <TextField variant="outlined" fullWidth />
 | 
		
	
		
			
			|  | 129 | +      </FieldContainer>
 | 
		
	
		
			
			|  | 130 | +
 | 
		
	
		
			
			|  | 131 | +      <FieldContainer label="Shipping Method">
 | 
		
	
		
			
			|  | 132 | +        <RadioGroup
 | 
		
	
		
			
			|  | 133 | +          value={shippingMethod}
 | 
		
	
		
			
			|  | 134 | +          onChange={(e) => setShippingMethod(e.target.value)}
 | 
		
	
		
			
			|  | 135 | +        >
 | 
		
	
		
			
			|  | 136 | +          <FormControlLabel
 | 
		
	
		
			
			|  | 137 | +            value="COD"
 | 
		
	
		
			
			|  | 138 | +            control={<Radio />}
 | 
		
	
		
			
			|  | 139 | +            label="Cash on Delivery (COD)"
 | 
		
	
		
			
			|  | 140 | +          />
 | 
		
	
		
			
			|  | 141 | +          <FormControlLabel
 | 
		
	
		
			
			|  | 142 | +            value="Postage"
 | 
		
	
		
			
			|  | 143 | +            control={<Radio />}
 | 
		
	
		
			
			|  | 144 | +            label="Postage"
 | 
		
	
		
			
			|  | 145 | +          />
 | 
		
	
		
			
			|  | 146 | +        </RadioGroup>
 | 
		
	
		
			
			|  | 147 | +      </FieldContainer>
 | 
		
	
		
			
			|  | 148 | +
 | 
		
	
		
			
			|  | 149 | +      <Button
 | 
		
	
		
			
			|  | 150 | +        variant="contained"
 | 
		
	
		
			
			|  | 151 | +        color="common.black"
 | 
		
	
		
			
			|  | 152 | +        onClick={() => { window.location.href = "/checkout" }}
 | 
		
	
		
			
			|  | 153 | +        sx={{
 | 
		
	
		
			
			|  | 154 | +          backgroundColor: (theme) => theme.palette.common.black,
 | 
		
	
		
			
			|  | 155 | +          color: "white",
 | 
		
	
		
			
			|  | 156 | +          textTransform: "none",
 | 
		
	
		
			
			|  | 157 | +          px: 8,
 | 
		
	
		
			
			|  | 158 | +          py: 2,
 | 
		
	
		
			
			|  | 159 | +          width: "fit-content",
 | 
		
	
		
			
			|  | 160 | +          "&:hover": {
 | 
		
	
		
			
			|  | 161 | +            backgroundColor: (theme) => theme.palette.grey[900],
 | 
		
	
		
			
			|  | 162 | +          },
 | 
		
	
		
			
			|  | 163 | +        }}>SIGN IN</Button>
 | 
		
	
		
			
			|  | 164 | +    </Box>
 | 
		
	
		
			
			|  | 165 | +  );
 | 
		
	
		
			
			|  | 166 | +};
 | 
		
	
		
			
			|  | 167 | +
 | 
		
	
		
			
			|  | 168 | +export default ShippingForm;
 |