Skip to content

Commit bbbb476

Browse files
authored
Ft user pay via stripe (#63)
* Finishes user pay cart * --ammend * --amend * -ammend * Merge Errors * --ammend * --ammend
1 parent 6beacdd commit bbbb476

File tree

6 files changed

+706
-315
lines changed

6 files changed

+706
-315
lines changed

Diff for: src/pages/UserCartPaymentSuccess.tsx

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/* eslint-disable */
2+
import React, { useEffect, useState } from 'react';
3+
import { Meta } from '../components/Meta';
4+
import { useAppDispatch, useAppSelector } from '../store/store';
5+
import { PuffLoader, PulseLoader } from 'react-spinners';
6+
import { toast } from 'react-toastify';
7+
import { checkout, getUserCarts } from '../store/features/carts/cartSlice';
8+
import {
9+
FaCheckSquare,
10+
FaMinus,
11+
FaPlus,
12+
FaEdit,
13+
FaTrash,
14+
FaGift,
15+
FaShippingFast,
16+
} from 'react-icons/fa';
17+
import { useNavigate } from 'react-router-dom';
18+
import Product from '../components/product/Product';
19+
import { Box, LinearProgress } from '@mui/material';
20+
import { useLocation } from 'react-router-dom';
21+
22+
const UserCartPaymentSuccess: React.FC = () => {
23+
const dispatch = useAppDispatch();
24+
const [isLoading, setIsLoading] = useState(true);
25+
const [currentEndpoint, setCurrentEndpoint] = useState('');
26+
const navigate = useNavigate();
27+
const location = useLocation();
28+
29+
useEffect(() => {
30+
toast.success('Cart payment success');
31+
navigate('/shopping-cart');
32+
}, [location.search, navigate]);
33+
34+
return (
35+
<>
36+
<Meta title="Cart payment success - E-Commerce Ninjas" />
37+
<div className="loader">
38+
<PuffLoader color="#ff6d18" size={300} loading={isLoading} />
39+
</div>
40+
</>
41+
);
42+
};
43+
44+
export default UserCartPaymentSuccess;

Diff for: src/pages/UserLogin.tsx

+34-30
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
/* eslint-disable */
2-
import React, { useEffect, useRef, useState } from "react";
3-
import { FcGoogle } from "react-icons/fc";
4-
import { BiSolidShow } from "react-icons/bi";
5-
import { BiSolidHide } from "react-icons/bi";
6-
import { useAppDispatch, useAppSelector } from "../store/store";
7-
import { loginUser } from "../store/features/auth/authSlice";
8-
import { toast } from "react-toastify";
9-
import { useFormik } from "formik";
10-
import * as Yup from "yup";
11-
import { Link, useNavigate } from "react-router-dom";
12-
import { PulseLoader } from "react-spinners";
13-
import { addProductToWishlist } from "../store/features/wishlist/wishlistSlice";
14-
import authService from "../store/features/auth/authService";
2+
import React, { useEffect, useRef, useState } from 'react';
3+
import { FcGoogle } from 'react-icons/fc';
4+
import { BiSolidShow } from 'react-icons/bi';
5+
import { BiSolidHide } from 'react-icons/bi';
6+
import { useAppDispatch, useAppSelector } from '../store/store';
7+
import { loginUser } from '../store/features/auth/authSlice';
8+
import { toast } from 'react-toastify';
9+
import { useFormik } from 'formik';
10+
import * as Yup from 'yup';
11+
import { Link, useNavigate } from 'react-router-dom';
12+
import { PulseLoader } from 'react-spinners';
13+
import { addProductToWishlist } from '../store/features/wishlist/wishlistSlice';
14+
import authService from '../store/features/auth/authService';
1515
import { joinRoom } from '../utils/socket/socket';
1616

1717
const LoginSchema = Yup.object().shape({
1818
email: Yup.string()
19-
.email("Email must be valid")
20-
.required("Email is required"),
21-
password: Yup.string().required("Password is required"),
19+
.email('Email must be valid')
20+
.required('Email is required'),
21+
password: Yup.string().required('Password is required'),
2222
});
2323

2424
function UserLogin() {
@@ -39,35 +39,39 @@ function UserLogin() {
3939

4040
const formik = useFormik({
4141
initialValues: {
42-
email: "",
43-
password: "",
42+
email: '',
43+
password: '',
4444
},
4545
validationSchema: LoginSchema,
4646
onSubmit: async (values) => {
47+
const { email } = values;
48+
localStorage.setItem('loggedEmail', email);
4749
const action = await dispatch(loginUser(values));
4850
if (loginUser.fulfilled.match(action)) {
49-
const pendingWishlistProduct = localStorage.getItem("pendingWishlistProduct");
51+
const pendingWishlistProduct = localStorage.getItem(
52+
'pendingWishlistProduct'
53+
);
5054
if (pendingWishlistProduct) {
5155
await dispatch(addProductToWishlist(pendingWishlistProduct));
52-
localStorage.removeItem("pendingWishlistProduct");
56+
localStorage.removeItem('pendingWishlistProduct');
5357
}
5458
}
55-
}
59+
},
5660
});
5761

5862
useEffect(() => {
59-
const token = localStorage.getItem("token");
63+
const token = localStorage.getItem('token');
6064
if (token) {
61-
navigate("/home");
65+
navigate('/home');
6266
}
6367
}, [navigate]);
6468

6569
useEffect(
6670
function () {
6771
if (isSuccess && token && isAuthenticated) {
68-
localStorage.setItem("token", token);
72+
localStorage.setItem('token', token);
6973
toast.success(message);
70-
navigate("/home");
74+
navigate('/home');
7175
formik.resetForm();
7276
joinRoom(token);
7377
}
@@ -121,7 +125,7 @@ function UserLogin() {
121125
</div>
122126
<div className="form__group">
123127
<input
124-
type={isVisible ? "text" : "password"}
128+
type={isVisible ? 'text' : 'password'}
125129
placeholder="Password"
126130
className="form__input"
127131
id="password"
@@ -144,7 +148,7 @@ function UserLogin() {
144148
/>
145149
)
146150
) : (
147-
""
151+
''
148152
)}
149153
<p className="form__text">
150154
<Link to="/reset-password" className="form__link">
@@ -161,11 +165,11 @@ function UserLogin() {
161165
) : null}
162166
<button
163167
type="submit"
164-
className={`btn form__btn${isLoading ? " loading" : ""}`}
168+
className={`btn form__btn${isLoading ? ' loading' : ''}`}
165169
disabled={isLoading}
166170
onClick={() => setIsClicked(true)}
167171
>
168-
<span>{isLoading ? "Loading " : "Login"}</span>
172+
<span>{isLoading ? 'Loading ' : 'Login'}</span>
169173
<PulseLoader size={6} color="#ffe2d1" loading={isLoading} />
170174
</button>
171175
</form>
@@ -186,4 +190,4 @@ function UserLogin() {
186190
);
187191
}
188192

189-
export default UserLogin;
193+
export default UserLogin;

0 commit comments

Comments
 (0)