Skip to content

Commit

Permalink
Merge pull request #281 from vishnuvinay09/all-rig-v2-0.1
Browse files Browse the repository at this point in the history
IssueId #217054 fix: Hangman Practice state management issue while Switching language in Test-Rig
  • Loading branch information
gouravmore authored Apr 12, 2024
2 parents 73e1342 + d530355 commit 71e7e74
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 20 deletions.
4 changes: 3 additions & 1 deletion src/components/AppDrawer/AppDrawer.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import ConfigForm from '../../config/ConfigForm';
import { useNavigate } from 'react-router-dom';
import { fetchPointerApi } from '../../utils/api/PointerApi';

function AppDrawer({ forceRerender, setForceRerender }) {
function AppDrawer({ forceRerender, setForceRerender, setCurrentWordIndex ,setCompletionCriteriaIndex }) {
const navigate = useNavigate()
const { isOpen, onOpen, onClose } = useDisclosure()
const btnRef = React.useRef()
Expand Down Expand Up @@ -189,6 +189,8 @@ function AppDrawer({ forceRerender, setForceRerender }) {
setLesson(data?.result?.result?.lesson || 0)
setLevel(data?.result?.result?.milestoneLevel || 'm0');
localStorage.setItem('userCurrentLevel', data?.result?.result?.milestoneLevel || 'm0')
setCompletionCriteriaIndex(parseInt(data?.result?.result?.lesson) || 0)
setCurrentWordIndex(0)
localStorage.setItem(
'userPracticeState',
data?.result?.result?.lesson || 0
Expand Down
8 changes: 7 additions & 1 deletion src/pages/Header.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ export default function Header({
active,
forceRerender = false,
setForceRerender = () => {},
completionCriteriaIndex,
setCompletionCriteriaIndex,
setCurrentWordIndex,
}) {
const navigate = useNavigate();
const { isOpen, onOpen, onClose } = useDisclosure();
Expand Down Expand Up @@ -148,9 +151,12 @@ export default function Header({
</Box>
<Spacer />
<Box p={1}>
<AppDrawer
<AppDrawer
forceRerender={forceRerender}
setForceRerender={setForceRerender}
completionCriteriaIndex={completionCriteriaIndex || 0}
setCompletionCriteriaIndex={setCompletionCriteriaIndex || (() => {})}
setCurrentWordIndex={setCurrentWordIndex || (() => {})}
/>
</Box>
</Flex>
Expand Down
1 change: 1 addition & 0 deletions src/pages/Story/Showcase.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,7 @@ const Showcase = ({ forceRerender, setForceRerender }) => {
active={3}
forceRerender={forceRerender}
setForceRerender={setForceRerender}
completionCriteriaIndex={completionCriteriaIndex}
/>

<Center></Center>
Expand Down
32 changes: 16 additions & 16 deletions src/pages/Test-Rig-Two/Story/Story.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ const Story = ({ forceRerender, setForceRerender }) => {
const [isUserSpeak, setUserSpeak] = useState(false);
const [storycase64Data, setStoryBase64Data] = useState('');

const [template, SetTemplate] = useState('');
const [template, setTemplate] = useState('');
const [currentWordIndex, setCurrentWordIndex] = useState(0);
const [isNext, setIsNext] = useState(false);
const [showSplashScreen, setShowSplashScreen] = useState(false);
Expand Down Expand Up @@ -223,13 +223,10 @@ const Story = ({ forceRerender, setForceRerender }) => {
}, [progressData]);

useEffect(()=>{
try {
try {
setCompletionCriteriaIndex(parseInt(localStorage.getItem('userPracticeState') || 0))
} catch (error) {
console.error(
"Error accessing localStorage for 'userPracticeState':",
error
);
} catch (error) {
console.error("Error accessing localStorage for 'userPracticeState':", error.message);
}
},[forceRerender])

Expand Down Expand Up @@ -296,10 +293,10 @@ const Story = ({ forceRerender, setForceRerender }) => {
setSourceChars(data?.getTargetChar);
setPosts(newPosts);
setCurrentLine(0);
SetTemplate(
practiceCompletionCriteria[completionCriteriaIndex]?.template ||
'simple'
);
setTemplate(
practiceCompletionCriteria[completionCriteriaIndex]?.template ||
'simple'
);
setLoading(false);
});
setLoading(false);
Expand Down Expand Up @@ -419,7 +416,7 @@ const Story = ({ forceRerender, setForceRerender }) => {
}
};
const handleSpellAndCheck = callback => {
SetTemplate('simple');
setTemplate('simple');
callback();
};

Expand Down Expand Up @@ -495,7 +492,7 @@ const Story = ({ forceRerender, setForceRerender }) => {
setCurrentWordIndex(0);
} else {
setCurrentLine(currentLine + 1);
SetTemplate(
setTemplate(
practiceCompletionCriteria[completionCriteriaIndex]?.template || ''
);
}
Expand Down Expand Up @@ -589,6 +586,9 @@ const Story = ({ forceRerender, setForceRerender }) => {
active={2}
forceRerender={forceRerender}
setForceRerender={setForceRerender}
completionCriteriaIndex={completionCriteriaIndex}
setCompletionCriteriaIndex={setCompletionCriteriaIndex}
setCurrentWordIndex={setCurrentWordIndex}
/>
<Container mt={is1366x768? 0:20} w={'75vw'} className="story-container">
<Center
Expand Down Expand Up @@ -755,7 +755,7 @@ const Story = ({ forceRerender, setForceRerender }) => {
</Flex>
</Center>
</>
) : posts && practiceCompletionCriteria[completionCriteriaIndex]?.template ===
) : posts && template ===
'simple' ? (
<>
<VStack>
Expand Down Expand Up @@ -979,7 +979,7 @@ const Story = ({ forceRerender, setForceRerender }) => {
</VStack>
</>
) : posts?.length >= 0 &&
practiceCompletionCriteria[completionCriteriaIndex]?.template ==
template ==
'spell-and-check' ? (
<>
<SpellAndCheck
Expand Down Expand Up @@ -1010,7 +1010,7 @@ const Story = ({ forceRerender, setForceRerender }) => {
/>
</>
) : posts?.length >= 0 &&
practiceCompletionCriteria[completionCriteriaIndex]?.template ==
template ==
'hangman-game' ? (
<HangmanGame
sourceChars={sourceChars}
Expand Down
4 changes: 2 additions & 2 deletions src/pages/Test-Rig-Two/Story/hangman-game/HangmanGame.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ const HangmanGame = ({
}, [word]);

const resetGame = () => {
const randomWord = words[currentWordIndex];
const randomWord = words?.[currentWordIndex];
setWord(randomWord?.toLowerCase());
setGuessedWord(
Array(
Expand All @@ -78,7 +78,7 @@ const HangmanGame = ({
item !== '.' &&
item !== ''
)?.length
).fill('_')
)?.fill('_')
);

setHint(randomWord?.length - 1);
Expand Down

0 comments on commit 71e7e74

Please sign in to comment.