fix(rewards): fix null state in rewards screen

This commit is contained in:
shafin-r
2026-02-22 13:00:28 +06:00
parent d56ea14a22
commit 894863c196
2 changed files with 77 additions and 21 deletions

View File

@ -261,8 +261,8 @@ const TARGETED_XP = 15;
const TARGETED_SCORE = 15;
const TargetedResults = ({ onFinish }: { onFinish: () => void }) => {
const { userXp, setUserXp } = useExamConfigStore();
const previousXP = userXp ?? 0;
const { userMetrics, setUserMetrics } = useExamConfigStore();
const previousXP = userMetrics.xp ?? 0;
const gainedXP = TARGETED_XP;
const levelMinXP = Math.floor(previousXP / 100) * 100;
const levelMaxXP = levelMinXP + 100;
@ -270,7 +270,11 @@ const TargetedResults = ({ onFinish }: { onFinish: () => void }) => {
const displayXP = useCountUp(gainedXP);
useEffect(() => {
setUserXp(previousXP);
setUserMetrics({
xp: previousXP,
questions: 0,
streak: 0,
});
}, []);
return (
@ -393,11 +397,16 @@ export const Results = () => {
const navigate = useNavigate();
const results = useResults((s) => s.results);
const clearResults = useResults((s) => s.clearResults);
const { setUserXp, payload } = useExamConfigStore();
const { setUserMetrics, payload } = useExamConfigStore();
const isTargeted = payload?.mode === "TARGETED";
useEffect(() => {
if (results) setUserXp(results.total_xp);
if (results)
setUserMetrics({
xp: results.total_xp,
questions: results.correct_count,
streak: 0,
});
}, [results]);
function handleFinishExam() {