diff --git a/src/component/profile_complete/ProfileCompleteCom.jsx b/src/component/profile_complete/ProfileCompleteCom.jsx
index 9975999..012a1d7 100644
--- a/src/component/profile_complete/ProfileCompleteCom.jsx
+++ b/src/component/profile_complete/ProfileCompleteCom.jsx
@@ -1,67 +1,99 @@
-import React, { useEffect, useState } from "react";
+import React, { useEffect, useMemo, useState } from "react";
import BreadcrumbComBS from "../breadcrumb/BreadcrumbComBS";
-import { useLocation } from "react-router-dom";
-import { Form, Formik } from "formik";
+// import { useLocation } from "react-router-dom";
+// import { Form, Formik } from "formik";
import * as Yup from "yup";
import { useMutation, useQuery } from "@tanstack/react-query";
import getImage from "../../utils/getImage";
import { IoMdArrowDropdown } from "react-icons/io";
import { completeProfile, getCommonPractice } from '../../services/services';
+import siteLinks from "../../links/siteLinks";
+import { useNavigate } from "react-router-dom";
-const validationSchema = Yup.object().shape({
- practice: Yup.string().required("Required"),
- specialization: Yup.string().required("Required"),
- introduction: Yup.string().min(1, "Minimum 10 characters").max(50, "Maximum 50 characters").required("Required"),
- })
+// const validationSchema = Yup.object().shape({
+// practice: Yup.string().required("Required"),
+// specialization: Yup.string().required("Required"),
+// introduction: Yup.string().min(1, "Minimum 10 characters").max(50, "Maximum 50 characters").required("Required"),
+// })
- const initialValues = {
- practice: '',
- specialization: '',
- introduction: '',
- };
+// const initialValues = {
+// practice: '',
+// specialization: '',
+// introduction: '',
+// };
export default function ProfileCompleteCom(){
- const [practices, setPractices] = useState({practice: [], specialization: []})
+ const navigate = useNavigate()
+
+ const [practices, setPractices] = useState([])
+
+ const [initialValues, setInitialValues] = useState({
+ practice: '',
+ specialization: '',
+ introduction: '',
+ })
+
+ const specialties = useMemo(()=>{ // FUNCTION TO UPDATE SPECIALITY ARRAY EACH TIME PRACTICE CHANGES
+ setInitialValues(prev => ({...prev, specialization: ''}))
+ if(!initialValues.practice){
+ return []
+ }
+ const specialtiesArr = practices.filter(item => item.practice == initialValues.practice)[0]?.specialties
+ return specialtiesArr
+ },[initialValues.practice])
- const {state:{profile_completed}} = useLocation()
const mutation = useMutation({
mutationFn: (fields) => {
+ const {practice, specialization} = fields
+ if(!practice || !specialization){
+ throw new Error('Please select both practice and specialization fields')
+ }
return completeProfile(fields)
},
+ onError: () => {
+ setTimeout(()=>{mutation.reset()}, 4000)
+ },
onSuccess: (res) => {
- console.log('res', res)
+ setTimeout(()=>{
+ navigate(siteLinks.home)
+ },2000)
+ // console.log('res', res)
}
})
- const handleCompleteProfile = (values, helpers) => {
- // helpers.resetForm()
- let reqData = {
- token: localStorage.getItem('token'), // USER TOKEN
- uid: localStorage.getItem('uid'), // USER UID
- // ...values
- }
- console.log('values', values, helpers)
- // mutation.mutate(reqData)
- }
-
const commonPractices = useMutation({ // FUNCTION TO GET COMMON PRACTICES
mutationFn: (fields) => {
return getCommonPractice(fields)
},
onError: ()=> {
- setPractices({practice: [], specialization: []})
+ setPractices([])
},
onSuccess: (res) => {
- let returnPractices = []
- let returnSpecialization = []
- setPractices(res)
+ if(!res?.data){
+ return setPractices([])
+ }
+ let returnPractices = Object.entries(res?.data).filter(([key, value]) => typeof value == 'object')?.map(item => item[1])
+ setPractices(returnPractices)
}
})
+ const handlePracticeChange = ({target:{name, value}}) => {
+ setInitialValues(prev => ({...prev, [name]:value}))
+ }
+
+ const handleCompleteProfile = () => { // FUNCTION TO COMPLETE PROFILE
+ let reqData = {
+ token: localStorage.getItem('token'), // USER TOKEN
+ uid: localStorage.getItem('uid'), // USER UID
+ ...initialValues
+ }
+ mutation.mutate(reqData)
+ }
+
useEffect(()=>{
let reqData = {
token: localStorage.getItem('token'), // USER TOKEN
@@ -70,8 +102,6 @@ export default function ProfileCompleteCom(){
commonPractices.mutate(reqData)
},[])
- console.log('practices', practices)
-
return <>