diff --git a/src/components/ProfileComp/BestScore/BestScore.js b/src/components/ProfileComp/BestScore/BestScore.js index 5c589ae..f77f1e3 100644 --- a/src/components/ProfileComp/BestScore/BestScore.js +++ b/src/components/ProfileComp/BestScore/BestScore.js @@ -1,17 +1,41 @@ -import React from 'react'; +import React, { useEffect, useState } from 'react'; import Style from './BestScore.module.css'; import { Box, Stack } from '@mui/system'; import { NavLink } from 'react-router-dom'; import { Zoom } from 'react-awesome-reveal'; +import { getBestScore } from '../../../repositories/ProfileRepo'; +import MPopUp from '../../PopUp_Message/error/MPopUp'; export default function BestScore() { + + const [bestScore , setBestScore] = useState(0) ; + const [popup , setPopup] = useState(null) ; + + useEffect(() => { + async function BestScore(){ + var result = await getBestScore() ; + if(!result.isError){ + setBestScore(result.body.results) ; + }else{ + setPopup(Something Wrong); + setBestScore(0) ; + } + } + BestScore() ; + }) + + + + return ( -

374

+

+ {bestScore} +

is your total score

Best Score

diff --git a/src/components/ProfileComp/Informations/Informations.js b/src/components/ProfileComp/Informations/Informations.js index 40258f4..c4c93b8 100644 --- a/src/components/ProfileComp/Informations/Informations.js +++ b/src/components/ProfileComp/Informations/Informations.js @@ -1,17 +1,20 @@ import React from 'react'; import Style from './Informations.module.css'; -import { Box , Stack } from '@mui/system'; +import { Box, Stack } from '@mui/system'; import ProfileImg from '../../../images/Pngs/Profile2.png'; import { Form, Formik } from 'formik'; import { useState } from 'react'; - import CreateIcon from '@mui/icons-material/Create'; import CheckIcon from '@mui/icons-material/Check'; import { Zoom } from 'react-awesome-reveal'; +import { getUserInfo, editUserInfo } from '../../../repositories/ProfileRepo'; +import { useEffect } from 'react'; +import MPopUp from "../../PopUp_Message/error/MPopUp"; export default function Informations() { - + const [popup , setPopup] = useState(null) + const [fullName, setFullName] = useState("Basem Moahmed"); const [editName, setEditName] = useState(false); @@ -35,11 +38,38 @@ export default function Informations() { setAddress(event.target.value); }; - const onSave = (values, { resetEdit }) => { + const onSave = async (values, { resetEdit }) => { console.log(values); - resetEdit({ values: "" }); + + var editProfile = { + full_name: values.fullName, + email: values.email, + address: values.address, + phone_number: values.phone + } + + var result = await editUserInfo(editProfile) + if (result.isError) { + setPopup(Something Wrong); + } else { + resetEdit({ values: "" }); + setPopup(Done); + } }; - + + useEffect(() => { + async function getData() { + var result = await getUserInfo() + console.log(result.body); + if (!result.isError) { + setFullName(result.body.full_name); + setEmail(result.body.email); + setPhone(result.body.phone_number); + setAddress(result.body.address); + } + } + getData(); + }, []) return ( @@ -58,10 +88,10 @@ export default function Informations() { /> {editName ? ( - setEditName(false)} style={{fontSize : 'medium'}}/> + setEditName(false)} style={{ fontSize: 'medium' }} /> ) : ( - setEditName(true)} style={{fontSize : 'medium'}} /> + setEditName(true)} style={{ fontSize: 'medium' }} /> )} @@ -75,10 +105,10 @@ export default function Informations() { /> {editEmail ? ( - setEditEmail(false)} style={{fontSize : 'medium'}} /> + setEditEmail(false)} style={{ fontSize: 'medium' }} /> ) : ( - setEditEmail(true)} style={{fontSize : 'medium'}}/> + setEditEmail(true)} style={{ fontSize: 'medium' }} /> )} @@ -92,10 +122,10 @@ export default function Informations() { /> {editPassword ? ( - setEditPassword(false)} style={{fontSize : 'medium'}}/> + setEditPassword(false)} style={{ fontSize: 'medium' }} /> ) : ( - setEditPassword(true)} style={{fontSize : 'medium'}} /> + setEditPassword(true)} style={{ fontSize: 'medium' }} /> )} @@ -108,10 +138,10 @@ export default function Informations() { readOnly={!editPhone} /> {editPhone ? ( - setEditPhone(false)} style={{fontSize : 'medium'}}/> + setEditPhone(false)} style={{ fontSize: 'medium' }} /> ) : ( - setEditPhone(true)} style={{fontSize : 'medium'}}/> + setEditPhone(true)} style={{ fontSize: 'medium' }} /> )} @@ -124,10 +154,10 @@ export default function Informations() { readOnly={!editAddress} /> {editAddress ? ( - setEditAddress(false)} style={{fontSize : 'medium'}} /> + setEditAddress(false)} style={{ fontSize: 'medium' }} /> ) : ( - setEditAddress(true)} style={{fontSize : 'medium'}}/> + setEditAddress(true)} style={{ fontSize: 'medium' }} /> )} @@ -137,9 +167,9 @@ export default function Informations() {
- - - + + +
) diff --git a/src/helpers/apiService.js b/src/helpers/apiService.js index 6713f71..93226af 100644 --- a/src/helpers/apiService.js +++ b/src/helpers/apiService.js @@ -1,6 +1,6 @@ import axios from 'axios'; -const url = "http://20.19.184.149:8000"; +const url = "https://api.etlas.tech"; function getHeaders() { var access = localStorage.getItem("access"); diff --git a/src/pages/ContactUs/ContactUS.js b/src/pages/ContactUs/ContactUS.js index 432ad36..8823d3c 100644 --- a/src/pages/ContactUs/ContactUS.js +++ b/src/pages/ContactUs/ContactUS.js @@ -11,27 +11,35 @@ import PopUp from '../../components/PopUp_Message/PopUp'; import { Field, Formik, Form, ErrorMessage } from 'formik' import * as Yup from 'yup' -const initialValues = { - fullname: "", - email: "", - subject: "", - message: "", -}; +// const initialValues = { +// fullname: "", +// email: "", +// subject: "", +// message: "", +// }; -const validationSchema = Yup.object({ - fullname: Yup.string().required('required'), - email: Yup.string().email('invalid email format').required('required'), - subject: Yup.string().required('required') -}) -const onSubmit = (values, { resetForm }) => { - console.log(values); - resetForm({ values: "" }); -}; export default function ContactUS() { + + const [fullName, setFullName] = useState(""); + const [email, setEmail] = useState(""); + const [subject, setSubject] = useState(""); + const [message, setMessage] = useState(""); + const [buttonPopup , setButtonPopup] = useState(false) ; + const validationSchema = Yup.object({ + fullname: Yup.string().required('required'), + email: Yup.string().email('invalid email format').required('required'), + subject: Yup.string().required('required') + }) + + const onSubmit = (values, { resetForm }) => { + console.log(values); + resetForm({ values: "" }); + }; + return ( @@ -40,7 +48,7 @@ export default function ContactUS() {

Contact Us

@@ -54,6 +62,7 @@ export default function ContactUS() { placeholder='Full Name' id='fullname' name='fullname' + onChange={(fullName) => setFullName(fullName)} /> {(e) =>
{e}
} @@ -66,6 +75,7 @@ export default function ContactUS() { placeholder='Your Email' id='email' name='email' + onChange={(email) => setEmail(email)} /> {(e) =>
{e}
} @@ -79,6 +89,7 @@ export default function ContactUS() { id='subject' name='subject' className={Style.subject} + onChange={(subject) => setSubject(subject)} /> {(e) =>
{e}
} @@ -90,6 +101,7 @@ export default function ContactUS() { id='message' name='message' className={Style.message} + onChange={(message) => setMessage(message)} />
diff --git a/src/repositories/ContactUsRepo.js b/src/repositories/ContactUsRepo.js new file mode 100644 index 0000000..4eb12d4 --- /dev/null +++ b/src/repositories/ContactUsRepo.js @@ -0,0 +1,7 @@ +// import {Post} from '../helpers/apiService' + + +// export async function ContactUs (body){ +// const result = await Post("contact-us/message/" , JSON.stringify(body)) + +// } \ No newline at end of file diff --git a/src/repositories/ProfileRepo.js b/src/repositories/ProfileRepo.js new file mode 100644 index 0000000..9b99752 --- /dev/null +++ b/src/repositories/ProfileRepo.js @@ -0,0 +1,20 @@ +import {GET , Patch} from '../helpers/apiService' ; + +export async function getUserInfo(){ + const result = await GET("users/") ; + return result ; +} + +export async function editUserInfo(body){ + const result = await Patch("users/" , JSON.stringify(body)); + return { + isError: result.isError, + body: result.body, + }; +} + +export async function getBestScore(){ + const result = await GET("users/total-best-score/") ; + return result ; +} +