diff --git a/src/components/AppFooter.js b/src/components/AppFooter.js index 595a64b..eed1ea5 100644 --- a/src/components/AppFooter.js +++ b/src/components/AppFooter.js @@ -6,7 +6,7 @@ const AppFooter = () => {
- {new Date().getFullYear()} © Sales Champions. + {new Date().getFullYear()} ©CMP.
diff --git a/src/components/AppHeader.js b/src/components/AppHeader.js index d08bd5d..6ebfec6 100644 --- a/src/components/AppHeader.js +++ b/src/components/AppHeader.js @@ -32,7 +32,7 @@ const AppHeader = () => { -

Sales Champions

+

CMP

diff --git a/src/components/AppSidebar.js b/src/components/AppSidebar.js index 25d33ea..a87d30a 100644 --- a/src/components/AppSidebar.js +++ b/src/components/AppSidebar.js @@ -31,7 +31,7 @@ const AppSidebar = () => { > {/* */} -

Sales Champions

+

CMP

{/* */}
diff --git a/src/index.js b/src/index.js index dc6683f..4e23415 100644 --- a/src/index.js +++ b/src/index.js @@ -11,8 +11,8 @@ import store from './store' import axios from 'axios' const setupAxios = () => { - axios.defaults.baseURL = 'https://cms-api-dashboard.herokuapp.com/'; - //axios.defaults.baseURL = 'http://localhost:5000' + // axios.defaults.baseURL = 'https://cms-api-dashboard.herokuapp.com/'; + axios.defaults.baseURL = 'http://localhost:5000' axios.defaults.headers = { 'Cache-Control': 'no-cache,no-store', 'Pragma': 'no-cache', diff --git a/src/views/Banners/AddBanner.js b/src/views/Banners/AddBanner.js index c2ce71a..a8570e7 100644 --- a/src/views/Banners/AddBanner.js +++ b/src/views/Banners/AddBanner.js @@ -43,8 +43,8 @@ const AddBanner = () => { const handleSubmit = async () => { if (!(title && subTitle && image && section && subSection && startDate && endDate)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -75,7 +75,7 @@ const AddBanner = () => { } } catch (error) { - alert(error) + swal('Error!', error, 'error') setLoading(false); } diff --git a/src/views/Banners/EditBanner.js b/src/views/Banners/EditBanner.js index d168f65..d2c7106 100644 --- a/src/views/Banners/EditBanner.js +++ b/src/views/Banners/EditBanner.js @@ -59,8 +59,8 @@ const EditBanner = () => { const handleSubmit = async () => { if (!(title && subTitle && image && section && subSection && startDate && endDate)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -89,7 +89,7 @@ const EditBanner = () => { history.goBack(); } } catch (error) { - alert(error) + swal('Error!', error, 'error') setLoading(false); } // console.log(image) diff --git a/src/views/CMS/EditCms.js b/src/views/CMS/EditCms.js index b1b55b6..ee8593f 100644 --- a/src/views/CMS/EditCms.js +++ b/src/views/CMS/EditCms.js @@ -69,7 +69,8 @@ const EditCms = () => { history.goBack() } } catch (error) { - alert(error) + swal('Error!', error, 'error') + changeState({ loading: false }); } diff --git a/src/views/Category/AddCategory.js b/src/views/Category/AddCategory.js index 2e7eb40..5ecb8d8 100644 --- a/src/views/Category/AddCategory.js +++ b/src/views/Category/AddCategory.js @@ -32,8 +32,8 @@ const AddProduct = () => { const handleSubmit = async () => { if (!(name && image)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -60,7 +60,8 @@ const AddProduct = () => { history.goBack(); } } catch (error) { - alert("something went wrong") + swal('Error!', "something went wrong", 'error') + setLoading(false); } diff --git a/src/views/Category/EditCategory.js b/src/views/Category/EditCategory.js index 5e0ac83..bab5e68 100644 --- a/src/views/Category/EditCategory.js +++ b/src/views/Category/EditCategory.js @@ -44,8 +44,8 @@ const AddProduct = () => { const handleSubmit = async () => { if (!(name && image)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -72,7 +72,8 @@ const AddProduct = () => { history.goBack(); } } catch (error) { - alert("something went wrong") + swal('Error!', "something went wrong", 'error') + setLoading(false); } } diff --git a/src/views/Directory/Add_Business.js b/src/views/Directory/Add_Business.js index 4e54d64..dbae303 100644 --- a/src/views/Directory/Add_Business.js +++ b/src/views/Directory/Add_Business.js @@ -75,8 +75,8 @@ const Add_Business = () => { const handleSubmit = async () => { if (!(state.name && state.phone && state.email && state.Bname && state.Sname && state.country && state.city && state.description && state.category && state.status && image)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -122,7 +122,8 @@ const Add_Business = () => { history.goBack() } } catch (error) { - alert(error) + swal('Error!', error, 'error') + changeState({ loading: false }); } diff --git a/src/views/Directory/EditBisuness.js b/src/views/Directory/EditBisuness.js index acf11ee..227e68c 100644 --- a/src/views/Directory/EditBisuness.js +++ b/src/views/Directory/EditBisuness.js @@ -96,8 +96,8 @@ const EditBisuness = () => { const handleSubmit = async () => { if (!(state.name && state.phone && state.email && state.Building_Name && state.Street_Name && state.country && state.city && state.description && state.category && state.status && image)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); myForm.set('name', state.name) @@ -138,7 +138,8 @@ const EditBisuness = () => { history.goBack() } } catch (error) { - alert(error) + swal('Error!', error, 'error') + changeState({ loading: false }); } diff --git a/src/views/Events/AddEvent.js b/src/views/Events/AddEvent.js index a461920..0366dce 100644 --- a/src/views/Events/AddEvent.js +++ b/src/views/Events/AddEvent.js @@ -34,8 +34,8 @@ const AddEvent = () => { const [loading, setLoading] = useState(false); const handleSubmit = async () => { if (!(title && description && image && location && time && date)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -64,7 +64,8 @@ const AddEvent = () => { history.goBack(); } } catch (error) { - alert("Something went Wrong") + swal('Error!', 'Something went Wrong', 'error') + setLoading(false); } diff --git a/src/views/Events/EditEvent.js b/src/views/Events/EditEvent.js index 98ef976..4b1a62b 100644 --- a/src/views/Events/EditEvent.js +++ b/src/views/Events/EditEvent.js @@ -53,8 +53,8 @@ const EditEvent = () => { const handleSubmit = async () => { if (!(title && description && image && location && time && date)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -84,7 +84,8 @@ const EditEvent = () => { } } catch (error) { - alert("Something went Wrong") + swal('Error!', 'Something went Wrong', 'error') + setLoading(false); } diff --git a/src/views/FAQs/AddFaqs.js b/src/views/FAQs/AddFaqs.js index c09ebd8..a0ad586 100644 --- a/src/views/FAQs/AddFaqs.js +++ b/src/views/FAQs/AddFaqs.js @@ -31,8 +31,8 @@ const AddFaqs = () => { const handleSubmit = async () => { if (!(topic && description)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -58,7 +58,8 @@ const AddFaqs = () => { history.goBack(); } } catch (error) { - alert(error) + swal('Error!', error, 'error') + setLoading(false); } diff --git a/src/views/FAQs/EditFaqs.js b/src/views/FAQs/EditFaqs.js index 9095286..b6355a4 100644 --- a/src/views/FAQs/EditFaqs.js +++ b/src/views/FAQs/EditFaqs.js @@ -42,8 +42,8 @@ const EditFaqs = () => { }, [id]); const handleSubmit = async () => { if (!(topic && description)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -69,7 +69,8 @@ const EditFaqs = () => { history.goBack(); } } catch (error) { - alert(error) + swal('Error!', error, 'error') + setLoading(false); } diff --git a/src/views/News/AddNews.js b/src/views/News/AddNews.js index de77ca3..2894100 100644 --- a/src/views/News/AddNews.js +++ b/src/views/News/AddNews.js @@ -31,8 +31,8 @@ const AddNews = () => { const handleSubmit = async () => { if (!(title && description && image)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -58,7 +58,8 @@ const AddNews = () => { history.goBack(); } } catch (error) { - alert(error) + swal('Error!', error, 'error') + setLoading(false); } diff --git a/src/views/News/EditNews.js b/src/views/News/EditNews.js index b39ac3b..ab0d633 100644 --- a/src/views/News/EditNews.js +++ b/src/views/News/EditNews.js @@ -46,8 +46,8 @@ const EditNews = () => { const handleSubmit = async () => { if (!(title && description && image)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -73,7 +73,8 @@ const EditNews = () => { history.goBack(); } } catch (error) { - alert(error) + swal('Error!', error, 'error') + setLoading(false); } diff --git a/src/views/Offers/AddOffer.js b/src/views/Offers/AddOffer.js index 607b1ff..81a81fc 100644 --- a/src/views/Offers/AddOffer.js +++ b/src/views/Offers/AddOffer.js @@ -63,8 +63,8 @@ const AddOffer = () => { const handleSubmit = async () => { if (!(title && description && image && location && sendBisunessName)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -93,7 +93,8 @@ const AddOffer = () => { } } catch (error) { - alert("something Went Wrong") + swal('Error!', 'something Went Wrong', 'error') + setLoading(false); } diff --git a/src/views/Offers/EditOffer.js b/src/views/Offers/EditOffer.js index f563735..56a6d88 100644 --- a/src/views/Offers/EditOffer.js +++ b/src/views/Offers/EditOffer.js @@ -72,8 +72,8 @@ const EditOffer = () => { const handleSubmit = async () => { if (!(title && description && image && location && sendBisunessName)) { - alert("Please fill All required field "); - return; + return swal('Error!', 'All fields are required', 'error') + } const myForm = new FormData(); @@ -101,7 +101,8 @@ const EditOffer = () => { history.goBack(); } } catch (error) { - alert("something Went Wrong") + swal('Error!', 'something Went Wrong', 'error') + setLoading(false); } diff --git a/src/views/Requirement/AddRequirement.js b/src/views/Requirement/AddRequirement.js index e0ab9a7..672e55a 100644 --- a/src/views/Requirement/AddRequirement.js +++ b/src/views/Requirement/AddRequirement.js @@ -67,8 +67,8 @@ const AddRequirement = () => { }); if (!(title && description && areaOfInterest && allimage[0])) { - alert("please fill all fields") - return + return swal('Error!', 'All fields are required', 'error') + } setLoading(true); try { @@ -89,7 +89,8 @@ const AddRequirement = () => { } catch (error) { setLoading(false); - alert(error) + swal('Error!', error, 'error') + } diff --git a/src/views/Requirement/EditRequirement.js b/src/views/Requirement/EditRequirement.js index e2ad489..d9ecd62 100644 --- a/src/views/Requirement/EditRequirement.js +++ b/src/views/Requirement/EditRequirement.js @@ -82,8 +82,8 @@ const EditRequirement = () => { }); if (!(title && description && areaOfInterest && allimage[0])) { - alert("please fill all fields") - return + return swal('Error!', 'All fields are required', 'error') + } setLoading(true); try { @@ -104,7 +104,8 @@ const EditRequirement = () => { } catch (error) { setLoading(false); - alert(error) + swal('Error!', error, 'error') + } diff --git a/src/views/pages/login/Login.js b/src/views/pages/login/Login.js index f85111b..2198ce1 100644 --- a/src/views/pages/login/Login.js +++ b/src/views/pages/login/Login.js @@ -1,4 +1,4 @@ -import React from 'react' +import React, { useEffect } from 'react' import { Link } from 'react-router-dom' import { CButton, @@ -22,20 +22,80 @@ import { useHistory } from 'react-router-dom' const Login = () => { const [loading, setLoading] = useState(false); + const [validForm, setValidForm] = useState(false) const [auth, setAuth] = useState({ email: "", password: "" }); - const history = useHistory(); + const [errors, setErrors] = useState({ + emailError: '', + passwordError: '', - const handleChange = (e) => (event) => { - setAuth({ ...auth, [e]: event.target.value }); - }; + }) + const validEmailRegex = RegExp( + /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i, + ) + const validPasswordRegex = RegExp(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{7,}$/) + const history = useHistory(); + // const handleChange = (e) => (event) => { + + // setAuth({ ...auth, [e]: event.target.value }); + // }; + const validateForm = () => { + let valid = true + Object.values(errors).forEach((val) => { + if (val.length > 0) { + valid = false + return false + } + }) + Object.values(auth).forEach((val) => { + if (val.length <= 0) { + valid = false + return false + } + }) + return valid + } + + //cheking email and password + useEffect(() => { + if (validateForm()) { + setValidForm(true) + } else { + setValidForm(false) + } + }, [errors]) + const handleChange = (e) => { + const { name, value } = e.target + + switch (name) { + case 'email': + setErrors({ + ...errors, + emailError: validEmailRegex.test(value) ? '' : 'Email is not valid!', + }) + + break + case 'password': + setErrors((errors) => ({ + ...errors, + passwordError: validPasswordRegex.test(value) + ? '' + : 'Password Shoud Be 8 Characters Long, Atleast One Uppercase, Atleast One Lowercase,Atleast One Digit, Atleast One Special Character', + })) + break + default: + break + } + + setAuth({ ...auth, [name]: value }) + } const Login = async () => { if (!(auth.email && auth.password)) { - alert("please filled both fields") - return + + return swal('Error!', 'All fields are required', 'error') } setLoading({ loading: true }) try { @@ -55,7 +115,7 @@ const Login = () => { window.location.reload() } else { - alert("please try with admin credential!!") + swal('Error!', 'please try with admin credential!!', 'error') setLoading(false); } @@ -64,12 +124,14 @@ const Login = () => { } else { setLoading(false); - alert("Invalid Credential"); + + swal('Error!', 'Invalid Credentials', 'error') } } catch (error) { setLoading(false); - alert("Invalid Credentials"); + + swal('Error!', 'Invalid Credentials', 'error') } } @@ -84,27 +146,34 @@ const Login = () => {

Login

-

Sign In to Your Sales Champions Dashboard Account.

+

Sign In to Your CMP Dashboard Account.

- + + {errors.emailError && ( +

{errors.emailError}

+ )} - - + {errors.passwordError && ( +

{errors.passwordError}

+ )} + {!loading && "Login"} diff --git a/src/views/pages/register/Change_password.js b/src/views/pages/register/Change_password.js index 753c631..115bc9d 100644 --- a/src/views/pages/register/Change_password.js +++ b/src/views/pages/register/Change_password.js @@ -20,27 +20,77 @@ import Swal from 'sweetalert2' import { useHistory } from 'react-router-dom' const Register = () => { - const [oldPassword, setOldPassword] = useState(); - const [newPassword, setNewPassword] = useState(); - const [confirmPassword, setConfirmPassword] = useState(); + const [loading, setLoading] = useState(false); const history = useHistory(); + const [user, setUser] = useState({ + oldPassword: '', + newPassword: '', + confirmPassword: '', + }) + const [errors, setErrors] = useState({ + confirmPasswordError: '', + newPasswordError: '', + oldPasswordError: '', + }) + const validEmailRegex = RegExp( + /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i, + ) + const validPasswordRegex = RegExp(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{7,}$/) + const handleChange = (e) => { + const { name, value } = e.target + + switch (name) { + case 'oldPassword': + setErrors({ + ...errors, + oldPasswordError: validPasswordRegex.test(value) + ? '' + : 'Password Shoud Be 8 Characters Long, Atleast One Uppercase, Atleast One Lowercase,Atleast One Digit, Atleast One Special Character', + }) + + break + case 'newPassword': + setErrors({ + ...errors, + newPasswordError: validPasswordRegex.test(value) + ? '' + : 'Password Shoud Be 8 Characters Long, Atleast One Uppercase, Atleast One Lowercase,Atleast One Digit, Atleast One Special Character', + }) + + break + case 'confirmPassword': + setErrors((errors) => ({ + ...errors, + confirmPasswordError: validPasswordRegex.test(value) + ? '' + : 'Password Shoud Be 8 Characters Long, Atleast One Uppercase, Atleast One Lowercase,Atleast One Digit, Atleast One Special Character', + })) + break + default: + break + } + + setUser({ ...user, [name]: value }) + } const handleSubmit = async () => { - if (!(oldPassword && newPassword && confirmPassword)) { - alert("Please fill All required field "); - return; + if (!(user.oldPassword && user.newPassword && user.confirmPassword)) { + + return swal('Error!', 'All fields are required', 'error') + } + if (!(user.newPassword.length >= 8)) { + + return swal('Error!', 'All fields are required', 'error'); } const token = localStorage.getItem("authToken") setLoading({ loading: true }) - if (newPassword == confirmPassword) { + if (user.newPassword == user.confirmPassword) { let res = await axios.put('/api/v1/user/password/update', { - oldPassword - , newPassword, - confirmPassword + ...user }, { headers: { Authorization: `Bearer ${token}`, @@ -63,7 +113,7 @@ const Register = () => { } setLoading(false); } else { - alert('new password and confirm password are not matched') + swal('Error!', 'New Password And Confirm Password is Not Match !', 'error') setLoading(false); } @@ -83,29 +133,51 @@ const Register = () => { - setOldPassword(e.target.value)} /> + + {errors.oldPasswordError && ( +

{errors.oldPasswordError}

+ )} + setNewPassword(e.target.value)} /> + {errors.newPasswordError && ( +

{errors.newPasswordError}

+ )} + {errors.passwordError && ( +

{errors.passwordError}

+ )} setConfirmPassword(e.target.value)} + + placeholder="Confirm password " + value={user.confirmPassword} + onChange={handleChange} + name="confirmPassword" />
+ {errors.confirmPasswordError && ( +

{errors.confirmPasswordError}

+ )}