Untitled
unknown
plain_text
9 months ago
1.4 kB
0
Indexable
import React, { useEffect } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import { Box, Button, Text } from '@chakra-ui/react'; const Result = () => { const location = useLocation(); const navigate = useNavigate(); const { name, score, totalQuestions } = location.state; useEffect(() => { const storedLeaders = JSON.parse(localStorage.getItem('leaders')) || []; const newLeader = { name, score, totalQuestions }; // Check for existing entry and update it if found const leaderIndex = storedLeaders.findIndex(leader => leader.name === name); if (leaderIndex >= 0) { storedLeaders[leaderIndex] = newLeader; } else { storedLeaders.push(newLeader); } localStorage.setItem('leaders', JSON.stringify(storedLeaders.sort((a, b) => b.score - a.score))); }, [name, score, totalQuestions]); const handleRetry = () => { navigate('/'); }; return ( <Box p={5} w="660px" m="auto" mt="20vh"> <Text mb={4}>Quiz Result</Text> <Text mb={4}>Name: {name}</Text> <Text mb={4}>Score: {score} / {totalQuestions}</Text> <Text mb={4}>Percentage: {((score / totalQuestions) * 100).toFixed(2)}%</Text> <Button onClick={handleRetry}>Retry</Button> <Button onClick={() => navigate('/leaderboard')}>Leaderboard</Button> </Box> ); }; export default Result;
Editor is loading...
Leave a Comment