From 0421e57d5eaead2ceac3635184c360f6771c8172 Mon Sep 17 00:00:00 2001
From: Guilhem CARRON <gcarron@grandlyon.com>
Date: Wed, 16 Mar 2022 10:11:53 +0000
Subject: [PATCH] fix(challenges): Handle case user finished all challenges

---
 src/components/Splash/SplashRoot.tsx | 2 +-
 src/services/challenge.service.ts    | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/components/Splash/SplashRoot.tsx b/src/components/Splash/SplashRoot.tsx
index b7b56ecd6..06d2bb29c 100644
--- a/src/components/Splash/SplashRoot.tsx
+++ b/src/components/Splash/SplashRoot.tsx
@@ -306,7 +306,7 @@ const SplashRoot = ({ fadeTimer = 1000, children }: SplashRootProps) => {
           }))
         }
       } catch (err) {
-        if (err instanceof TypeError && !initStepErrors) {
+        if (err.message === 'Failed to fetch' && !initStepErrors) {
           setinitStepErrors(InitStepsErrors.UNKNOWN_ERROR)
         }
         log.error(`[Initialization] Error : ${err}`)
diff --git a/src/services/challenge.service.ts b/src/services/challenge.service.ts
index 255e008f2..6fc4b25a3 100644
--- a/src/services/challenge.service.ts
+++ b/src/services/challenge.service.ts
@@ -59,7 +59,10 @@ export default class ChallengeService {
     userChallenges.forEach((challenge, i) => {
       if (challenge.state != UserChallengeState.LOCKED) isAllLocked = false
       if (challenge.state === UserChallengeState.DONE) {
-        if (userChallenges[i + 1].state === UserChallengeState.LOCKED) {
+        if (
+          userChallenges[i + 1] &&
+          userChallenges[i + 1].state === UserChallengeState.LOCKED
+        ) {
           userChallenges[i + 1].state = UserChallengeState.UNLOCKED
         }
       }
-- 
GitLab