diff --git a/src/components/Assesment/Assesment.jsx b/src/components/Assesment/Assesment.jsx index 63fa8d42..08c17d18 100644 --- a/src/components/Assesment/Assesment.jsx +++ b/src/components/Assesment/Assesment.jsx @@ -23,7 +23,7 @@ import { useNavigate } from "../../../node_modules/react-router-dom/dist/index"; import { useEffect, useState } from "react"; import axios from "../../../node_modules/axios/index"; // import { useDispatch } from 'react-redux'; -import { setVirtualId } from "../../store/slices/user.slice"; +import { setUserId } from "../../store/slices/user.slice"; import { useDispatch, useSelector } from "react-redux"; import React from "react"; import desktopLevel1 from "../../assets/images/desktopLevel1.png"; @@ -543,8 +543,8 @@ const Assesment = ({ discoverStart }) => { let username; if (localStorage.getItem("token") !== null) { let jwtToken = localStorage.getItem("token"); - var userDetails = jwtDecode(jwtToken); - username = userDetails.student_name; + let userDetails = jwtDecode(jwtToken); + username = userDetails.preferred_username; setLocalData("profileName", username); } // const [searchParams, setSearchParams] = useSearchParams(); @@ -561,17 +561,15 @@ const Assesment = ({ discoverStart }) => { // const level = getLocalData('userLevel'); // setLevel(level); setLocalData("lang", lang); - dispatch(setVirtualId(localStorage.getItem("virtualId"))); - let contentSessionId = localStorage.getItem("contentSessionId"); - localStorage.setItem("sessionId", contentSessionId); - if (discoverStart && username && !localStorage.getItem("virtualId")) { + dispatch(setUserId(localStorage.getItem("userId"))); + if (discoverStart && username && !localStorage.getItem("userId")) { (async () => { setLocalData("profileName", username); - const usernameDetails = await axios.post( - `${process.env.REACT_APP_VIRTUAL_ID_HOST}/${config.URLS.GET_VIRTUAL_ID}?username=${username}` - ); + // const usernameDetails = await axios.post( + // `${process.env.REACT_APP_VIRTUAL_ID_HOST}/${config.URLS.GET_VIRTUAL_ID}?username=${username}` + // ); const getMilestoneDetails = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_MILESTONE}/${usernameDetails?.data?.result?.virtualID}?language=${lang}` + `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_MILESTONE}/${localStorage.getItem("userId")}?language=${lang}` ); localStorage.setItem( @@ -581,9 +579,8 @@ const Assesment = ({ discoverStart }) => { setLevel( getMilestoneDetails?.data.data?.milestone_level?.replace("m", "") ); - localStorage.setItem( - "virtualId", - usernameDetails?.data?.result?.virtualID + localStorage.getItem( + "userId" ); let session_id = localStorage.getItem("sessionId"); @@ -594,18 +591,18 @@ const Assesment = ({ discoverStart }) => { localStorage.setItem("lang", lang || "ta"); const getPointersDetails = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${usernameDetails?.data?.result?.virtualID}/${session_id}?language=${lang}` + `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${localStorage.getItem("userId")}/${session_id}?language=${lang}` ); setPoints(getPointersDetails?.data?.result?.totalLanguagePoints || 0); - dispatch(setVirtualId(usernameDetails?.data?.result?.virtualID)); + dispatch(setUserId(localStorage.getItem("userId"))); })(); } else { (async () => { - const virtualId = getLocalData("virtualId"); + const userId = getLocalData("userId"); const language = lang; const getMilestoneDetails = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_MILESTONE}/${virtualId}?language=${language}` + `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_MILESTONE}/${userId}?language=${language}` ); localStorage.setItem( "getMilestone", @@ -623,9 +620,9 @@ const Assesment = ({ discoverStart }) => { localStorage.setItem("sessionId", sessionId); } - if (virtualId) { + if (userId) { const getPointersDetails = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${virtualId}/${sessionId}?language=${lang}` + `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${userId}/${sessionId}?language=${lang}` ); setPoints(getPointersDetails?.data?.result?.totalLanguagePoints || 0); } @@ -633,12 +630,15 @@ const Assesment = ({ discoverStart }) => { } }, [lang]); - const { virtualId } = useSelector((state) => state.user); + const { userId } = useSelector((state) => { + console.log(state); + return state.user; + }); const navigate = useNavigate(); const handleRedirect = () => { const profileName = getLocalData("profileName"); - if (!username && !profileName && !virtualId && level === 0) { + if (!username && !profileName && !userId && level === 0) { // alert("please add username in query param"); setOpenMessageDialog({ message: "please add username in query param", diff --git a/src/components/AssesmentEnd/AssesmentEnd.jsx b/src/components/AssesmentEnd/AssesmentEnd.jsx index e3b1001a..6999ca84 100644 --- a/src/components/AssesmentEnd/AssesmentEnd.jsx +++ b/src/components/AssesmentEnd/AssesmentEnd.jsx @@ -29,12 +29,12 @@ const AssesmentEnd = () => { (async () => { let audio = new Audio(LevelCompleteAudio); audio.play(); - const virtualId = getLocalData("virtualId"); + const userId = getLocalData("userId"); const lang = getLocalData("lang"); const previous_level = getLocalData("previous_level"); setPreviousLevel(previous_level?.replace("m", "")); const getMilestoneDetails = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_MILESTONE}/${virtualId}?language=${lang}` + `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_MILESTONE}/${userId}?language=${lang}` ); const { data } = getMilestoneDetails; setLevel(data.data.milestone_level); @@ -45,7 +45,7 @@ const AssesmentEnd = () => { localStorage.setItem("sessionId", sessionId) } const getPointersDetails = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${virtualId}/${sessionId}?language=${lang}` + `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${userId}/${sessionId}?language=${lang}` ); setPoints(getPointersDetails?.data?.result?.totalLanguagePoints || 0); })(); @@ -67,7 +67,7 @@ const AssesmentEnd = () => { }; const handleRedirect = () => { - navigate("/practice"); + navigate(`/practice?userId=${encodeURIComponent(localStorage.getItem("userId"))}`); }; return true ? ( diff --git a/src/components/DiscoverEnd/DiscoverEnd.jsx b/src/components/DiscoverEnd/DiscoverEnd.jsx index 37e39011..9a1b9aa7 100644 --- a/src/components/DiscoverEnd/DiscoverEnd.jsx +++ b/src/components/DiscoverEnd/DiscoverEnd.jsx @@ -38,10 +38,10 @@ const SpeakSentenceComponent = () => { (async () => { let audio = new Audio(LevelCompleteAudio); audio.play(); - const virtualId = getLocalData("virtualId"); + const userId = getLocalData("userId"); const lang = getLocalData("lang"); const getMilestoneDetails = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_MILESTONE}/${virtualId}?language=${lang}` + `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_MILESTONE}/${userId}?language=${lang}` ); const { data } = getMilestoneDetails; setLevel(data.data.milestone_level); @@ -57,7 +57,7 @@ const SpeakSentenceComponent = () => { if (process.env.REACT_APP_IS_APP_IFRAME === 'true') { navigate("/") } else { - navigate("/discover-start") + navigate(`/discover-start?userId=${encodeURIComponent(localStorage.getItem("userId"))}`); } } catch (error) { console.error("Error posting message:", error); diff --git a/src/components/DiscoverSentance/DiscoverSentance.jsx b/src/components/DiscoverSentance/DiscoverSentance.jsx index c64ebe3f..c1961328 100644 --- a/src/components/DiscoverSentance/DiscoverSentance.jsx +++ b/src/components/DiscoverSentance/DiscoverSentance.jsx @@ -66,10 +66,10 @@ const SpeakSentenceComponent = () => { if (!(localStorage.getItem("contentSessionId") !== null)) { (async () => { const sessionId = getLocalData("sessionId"); - const virtualId = getLocalData("virtualId"); + const userId = getLocalData("userId"); const lang = getLocalData("lang"); const getPointersDetails = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${virtualId}/${sessionId}?language=${lang}` + `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${userId}/${sessionId}?language=${lang}` ); setPoints(getPointersDetails?.data?.result?.totalLanguagePoints || 0); })(); @@ -119,11 +119,12 @@ const SpeakSentenceComponent = () => { const pointsRes = await axios.post( `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_POINTER}`, { - userId: localStorage.getItem("virtualId"), + userId: localStorage.getItem("userId"), sessionId: localStorage.getItem("sessionId"), points: 1, language: lang, milestone: "m0", + tenantId : localStorage.getItem("tenantId"), } ); setPoints(pointsRes?.data?.result?.totalLanguagePoints || 0); @@ -135,13 +136,14 @@ const SpeakSentenceComponent = () => { await axios.post( `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_LESSON}`, { - userId: localStorage.getItem("virtualId"), + userId: localStorage.getItem("userId"), sessionId: localStorage.getItem("sessionId"), milestone: `discoveryList/discovery/${currentCollectionId}`, lesson: localStorage.getItem("storyTitle"), progress: ((currentQuestion + 1) * 100) / questions.length, language: lang, milestoneLevel: "m0", + tenantId : localStorage.getItem("tenantId"), } ); @@ -155,10 +157,12 @@ const SpeakSentenceComponent = () => { sub_session_id: sub_session_id, contentType: currentContentType, session_id: localStorage.getItem("sessionId"), - user_id: localStorage.getItem("virtualId"), + user_id: localStorage.getItem("userId"), collectionId: currentCollectionId, totalSyllableCount: totalSyllableCount, language: localStorage.getItem("lang"), + tenantId : localStorage.getItem("tenantId"), + } ); setInitialAssesment(false); @@ -169,11 +173,12 @@ const SpeakSentenceComponent = () => { await axios.post( `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.CREATE_LEARNER_PROGRESS}`, { - userId: localStorage.getItem("virtualId"), + userId: localStorage.getItem("userId"), sessionId: localStorage.getItem("sessionId"), subSessionId: sub_session_id, milestoneLevel: getSetData?.data?.currentLevel, language: localStorage.getItem("lang"), + tenantId : localStorage.getItem("tenantId"), } ); } @@ -291,11 +296,6 @@ const SpeakSentenceComponent = () => { const handleBack = () => { const destination = process.env.REACT_APP_IS_APP_IFRAME === 'true' ? "/" : "/discover-start"; navigate(destination); - // if (process.env.REACT_APP_IS_APP_IFRAME === 'true') { - // navigate("/"); - // } else { - // navigate("/discover-start") - // } }; return ( <> diff --git a/src/store/slices/user.slice.js b/src/store/slices/user.slice.js index 9d5e9a99..5b612784 100644 --- a/src/store/slices/user.slice.js +++ b/src/store/slices/user.slice.js @@ -9,7 +9,7 @@ const userSlice = createSlice({ id: 0, mobile: '', otpSent: false, - virtualId: null, + userId: null, }, reducers: { setUser(state, action) { @@ -31,8 +31,8 @@ const userSlice = createSlice({ setOtpVerified(state, action) { state.isOtpVerified = action.payload.isOtpVerified; }, - setVirtualId(state, action) { - state.virtualId = action.payload; + setUserId(state, action) { + state.userId = action.payload; }, }, }); @@ -47,7 +47,7 @@ export const { setOtpVerified, verifyOtp, isOtpVerified, - setVirtualId, + setUserId, } = userSlice.actions; export default userSlice.reducer; diff --git a/src/utils/VoiceAnalyser.js b/src/utils/VoiceAnalyser.js index ed33b78b..698b50d1 100644 --- a/src/utils/VoiceAnalyser.js +++ b/src/utils/VoiceAnalyser.js @@ -253,9 +253,10 @@ function VoiceAnalyser(props) { try { const lang = getLocalData("lang"); - const virtualId = getLocalData("virtualId"); + const userId = getLocalData("userId"); const sessionId = getLocalData("sessionId"); const sub_session_id = getLocalData("sub_session_id"); + const tenantId = getLocalData("tenantId"); const { originalText, contentType, contentId, currentLine } = props; const responseStartTime = new Date().getTime(); let responseText = ""; @@ -279,13 +280,14 @@ function VoiceAnalyser(props) { { original_text: originalText, audio: base64Data, - user_id: virtualId, + user_id: userId, session_id: sessionId, language: lang, date: new Date(), sub_session_id, contentId, contentType, + tenantId, practice_duration: parseInt(loadToMicStartDuration.toFixed(0)), read_duration: parseInt(micDuration.toFixed(0)), } diff --git a/src/views/AppContent/AppContent.jsx b/src/views/AppContent/AppContent.jsx index 2268090b..f5fd58b8 100644 --- a/src/views/AppContent/AppContent.jsx +++ b/src/views/AppContent/AppContent.jsx @@ -3,13 +3,14 @@ import { Routes, Route, useNavigate } from "react-router-dom"; import CustomizedSnackbars from "../../views/Snackbar/CustomSnackbar"; const PrivateRoute = (props) => { - const virtualId = localStorage.getItem("virtualId"); + const { userId } = useSelector((state) => state.user); const navigate = useNavigate(); - // useEffect(() => { - // if (!virtualId && props.requiresAuth) { - // navigate("/login"); - // } - // }, [virtualId]); + useEffect(() => { + if (!userId && props.requiresAuth) { + // navigate("/"); + } + }, [userId]); + return <>{props.children}; }; diff --git a/src/views/Practice/Practice.jsx b/src/views/Practice/Practice.jsx index 338039aa..d69ed216 100644 --- a/src/views/Practice/Practice.jsx +++ b/src/views/Practice/Practice.jsx @@ -148,6 +148,8 @@ const Practice = () => { try { const lang = getLocalData("lang"); + const tenantId = getLocalData("tenantId"); + if (localStorage.getItem("contentSessionId") !== null) { setPoints(1); if (isShowCase) { @@ -157,19 +159,19 @@ const Practice = () => { const pointsRes = await axios.post( `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_POINTER}`, { - userId: localStorage.getItem("virtualId"), + userId: localStorage.getItem("userId"), sessionId: localStorage.getItem("sessionId"), points: 1, language: lang, milestone: `m${level}`, + tenantId, } ); setPoints(pointsRes?.data?.result?.totalLanguagePoints || 0); } - const virtualId = getLocalData("virtualId"); + const userId = getLocalData("userId"); const sessionId = getLocalData("sessionId"); - let practiceProgress = getLocalData("practiceProgress"); practiceProgress = practiceProgress ? JSON.parse(practiceProgress) : {}; @@ -177,8 +179,8 @@ const Practice = () => { let currentPracticeStep = ""; let currentPracticeProgress = ""; - if (practiceProgress?.[virtualId]) { - currentPracticeStep = practiceProgress[virtualId].currentPracticeStep; + if (practiceProgress?.[userId]) { + currentPracticeStep = practiceProgress[userId].currentPracticeStep; currentPracticeProgress = Math.round( ((currentQuestion + 1 + currentPracticeStep * limit) / (practiceSteps.length * limit)) * @@ -191,13 +193,15 @@ const Practice = () => { await axios.post( `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_LESSON}`, { - userId: virtualId, + userId: userId, sessionId: sessionId, milestone: isShowCase ? "showcase" : `practice`, lesson: currentPracticeStep, progress: isShowCase ? showcasePercentage : currentPracticeProgress, language: lang, milestoneLevel: `m${level}`, + tenantId :tenantId, + } ); @@ -212,7 +216,7 @@ const Practice = () => { if (currentQuestion === questions.length - 1 || isGameOver) { // navigate or setNextPracticeLevel let currentPracticeStep = - practiceProgress[virtualId].currentPracticeStep; + practiceProgress[userId].currentPracticeStep; let isShowCase = currentPracticeStep === 4 || currentPracticeStep === 9; // P4 or P8 if (isShowCase || isGameOver) { // assesment @@ -224,9 +228,10 @@ const Practice = () => { sub_session_id: sub_session_id, contentType: currentContentType, session_id: sessionId, - user_id: virtualId, + user_id: userId, totalSyllableCount: totalSyllableCount, language: localStorage.getItem("lang"), + tenantId: tenantId, } ); const { data: getSetData } = getSetResultRes; @@ -234,16 +239,19 @@ const Practice = () => { Log(data, "practice", "ET"); setPercentage(getSetData?.data?.percentage); checkFluency(currentContentType, getSetData?.data?.fluency); + if (process.env.REACT_APP_POST_LEARNER_PROGRESS === "true") { await axios.post( `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.CREATE_LEARNER_PROGRESS}`, { - userId: virtualId, + userId: userId, sessionId: sessionId, subSessionId: sub_session_id, milestoneLevel: getSetData?.data?.currentLevel, totalSyllableCount: totalSyllableCount, language: localStorage.getItem("lang"), + tenantId : localStorage.getItem("tenantId"), + } ); } @@ -253,13 +261,14 @@ const Practice = () => { await axios.post( `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_LESSON}`, { - userId: virtualId, + userId: userId, sessionId: sessionId, milestone: `practice`, lesson: "0", progress: 0, language: lang, milestoneLevel: getSetData.data.currentLevel, + tenantId : localStorage.getItem("tenantId"), } ); gameOver({ link: "/assesment-end" }, true); @@ -284,13 +293,14 @@ const Practice = () => { await axios.post( `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_LESSON}`, { - userId: virtualId, + userId: userId, sessionId: sessionId, milestone: `practice`, lesson: newPracticeStep, progress: currentPracticeProgress, language: lang, milestoneLevel: `m${level}`, + tenantId : localStorage.getItem("tenantId"), } ); @@ -299,7 +309,7 @@ const Practice = () => { return; } const resGetContent = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_CONTENT}/${currentGetContent.criteria}/${virtualId}?language=${lang}&contentlimit=${limit}&gettargetlimit=${limit}` + `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_CONTENT}/${currentGetContent.criteria}/${userId}?language=${lang}&contentlimit=${limit}&gettargetlimit=${limit}` ); setTotalSyllableCount(resGetContent?.data?.totalSyllableCount); @@ -322,13 +332,13 @@ const Practice = () => { setCurrentCollectionId(resGetContent?.data?.content?.[0]?.collectionId); setAssessmentResponse(resGetContent); setCurrentQuestion(0); - practiceProgress[virtualId] = { + practiceProgress[userId] = { currentQuestion: newQuestionIndex, currentPracticeProgress, currentPracticeStep: newPracticeStep, }; setLocalData("practiceProgress", JSON.stringify(practiceProgress)); - setProgressData(practiceProgress[virtualId]); + setProgressData(practiceProgress[userId]); localStorage.setItem("storyTitle", resGetContent?.name); setQuestions(quesArr); @@ -337,13 +347,13 @@ const Practice = () => { }, 1000); } else if (currentQuestion < questions.length - 1) { setCurrentQuestion(currentQuestion + 1); - practiceProgress[virtualId] = { + practiceProgress[userId] = { currentQuestion: newQuestionIndex, currentPracticeProgress, currentPracticeStep: newPracticeStep, }; setLocalData("practiceProgress", JSON.stringify(practiceProgress)); - setProgressData(practiceProgress[virtualId]); + setProgressData(practiceProgress[userId]); } } catch (error) { console.log(error); @@ -384,8 +394,8 @@ const Practice = () => { try { setLoading(true); const lang = getLocalData("lang"); - const virtualId = getLocalData("virtualId"); - let sessionId = getLocalData("sessionId"); + const userId = getLocalData("userId"); + const sessionId = getLocalData("sessionId"); if (!sessionId) { sessionId = uniqueId(); @@ -393,7 +403,7 @@ const Practice = () => { } const getMilestoneDetails = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_MILESTONE}/${virtualId}?language=${lang}` + `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_MILESTONE}/${userId}?language=${lang}` ); setLocalData( "getMilestone", @@ -408,10 +418,10 @@ const Practice = () => { setLevel(level); const resLessons = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_LESSON_PROGRESS_BY_ID}/${virtualId}?language=${lang}` + `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_LESSON_PROGRESS_BY_ID}/${userId}?language=${lang}` ); const getPointersDetails = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${virtualId}/${sessionId}?language=${lang}` + `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.GET_POINTER}/${userId}/${sessionId}?language=${lang}` ); setPoints(getPointersDetails?.data?.result?.totalLanguagePoints || 0); @@ -424,7 +434,7 @@ const Practice = () => { let practiceProgress = getLocalData("practiceProgress"); practiceProgress = practiceProgress ? JSON.parse(practiceProgress) : {}; - practiceProgress[virtualId] = { + practiceProgress[userId] = { currentQuestion: 0, currentPracticeProgress: (userState / practiceSteps.length) * 100, currentPracticeStep: userState || 0, @@ -435,7 +445,7 @@ const Practice = () => { ); const resWord = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_CONTENT}/${currentGetContent.criteria}/${virtualId}?language=${lang}&contentlimit=${limit}&gettargetlimit=${limit}` + `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_CONTENT}/${currentGetContent.criteria}/${userId}?language=${lang}&contentlimit=${limit}&gettargetlimit=${limit}` ); setTotalSyllableCount(resWord?.data?.totalSyllableCount); setLivesData({ @@ -462,20 +472,21 @@ const Practice = () => { await axios.post( `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_LESSON}`, { - userId: virtualId, + userId: userId, sessionId: sessionId, milestone: "showcase", lesson: userState, progress: 0, language: lang, milestoneLevel: `m${level}`, + tenantId : localStorage.getItem("tenantId"), } ); } - setCurrentQuestion(practiceProgress[virtualId]?.currentQuestion || 0); + setCurrentQuestion(practiceProgress[userId]?.currentQuestion || 0); setLocalData("practiceProgress", JSON.stringify(practiceProgress)); - setProgressData(practiceProgress[virtualId]); + setProgressData(practiceProgress[userId]); setLoading(false); } catch (error) { setLoading(false); @@ -489,7 +500,7 @@ const Practice = () => { const handleBack = async () => { if (progressData.currentPracticeStep > 0) { - const virtualId = getLocalData("virtualId"); + const userId = getLocalData("userId"); const sessionId = getLocalData("sessionId"); const lang = getLocalData("lang"); let practiceProgress = {}; @@ -497,7 +508,7 @@ const Practice = () => { progressData.currentPracticeStep === 5 ? 3 : progressData.currentPracticeStep - 1; - practiceProgress[virtualId] = { + practiceProgress[userId] = { currentQuestion: 0, currentPracticeProgress: (newCurrentPracticeStep / practiceSteps.length) * 100, @@ -508,24 +519,25 @@ const Practice = () => { await axios.post( `${process.env.REACT_APP_LEARNER_AI_ORCHESTRATION_HOST}/${config.URLS.ADD_LESSON}`, { - userId: virtualId, + userId: userId, sessionId: sessionId, milestone: "practice", lesson: newCurrentPracticeStep, progress: (newCurrentPracticeStep / practiceSteps.length) * 100, language: lang, milestoneLevel: `m${level}`, + tenantId : localStorage.getItem("tenantId"), } ); - setProgressData(practiceProgress[virtualId]); + setProgressData(practiceProgress[userId]); const currentGetContent = levelGetContent?.[level]?.find( (elem) => elem.title === practiceSteps?.[newCurrentPracticeStep].name ); let quesArr = []; const resWord = await axios.get( - `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_CONTENT}/${currentGetContent.criteria}/${virtualId}?language=${lang}&contentlimit=${limit}&gettargetlimit=${limit}` + `${process.env.REACT_APP_LEARNER_AI_APP_HOST}/${config.URLS.GET_CONTENT}/${currentGetContent.criteria}/${userId}?language=${lang}&contentlimit=${limit}&gettargetlimit=${limit}` ); setTotalSyllableCount(resWord?.data?.totalSyllableCount); setLivesData({ @@ -546,7 +558,7 @@ const Practice = () => { setTimeout(() => { setMechanism(currentGetContent.mechanism); }, 1000); - setCurrentQuestion(practiceProgress[virtualId]?.currentQuestion || 0); + setCurrentQuestion(practiceProgress[userId]?.currentQuestion || 0); setLocalData("practiceProgress", JSON.stringify(practiceProgress)); } else { if (process.env.REACT_APP_IS_APP_IFRAME === "true") {