diff --git a/src/components/Quiz/QuizBegin.tsx b/src/components/Quiz/QuizBegin.tsx index 60f30af7e72a0cadf30614b03631272f72ae9e93..474b7ced533e65c83b98d98c84165026466839cb 100644 --- a/src/components/Quiz/QuizBegin.tsx +++ b/src/components/Quiz/QuizBegin.tsx @@ -7,6 +7,10 @@ import quizStars from 'assets/icons/visu/quiz/quizStars.svg' import StyledStopButton from 'components/CommonKit/Button/StyledStopButton' import StyledIcon from 'components/CommonKit/Icon/StyledIcon' import { useDispatch, useSelector } from 'react-redux' +import { UserChallengeUpdateFlag } from 'enum/userChallenge.enum' +import ChallengeService from 'services/challenge.service' +import { setChallengeConsumption } from 'store/challenge/challenge.actions' +import { UserChallenge } from 'models' interface QuizBeginProps { userChallenge: UserChallenge @@ -17,33 +21,20 @@ const QuizBegin: React.FC<QuizBeginProps> = ({ }: QuizBeginProps) => { const client: Client = useClient() const { t } = useI18n() - const [height, setHeight] = useState<number>(0) const launchQuiz = useCallback(async () => { - // if (fluidTypes.length > 0) { - // const challengeService = new ChallengeService(client) - // const updatedChallenge = await challengeService.updateUserChallenge( - // userChallenge, - // UserChallengeUpdateFlag.DUEL_START - // ) - // const dataloads = await challengeService.getUserChallengeDataload( - // updatedChallenge - // ) - // dispatch(setChallengeConsumption(updatedChallenge, dataloads)) - // } else { - // return toggleNoFluidModal() - // } - }, []) - - useEffect(() => { - console.log(userChallenge) - }, []) + const challengeService = new ChallengeService(client) + challengeService.updateUserChallenge( + userChallenge, + UserChallengeUpdateFlag.QUIZ_START + ) + }, [client, userChallenge]) return ( <div className="quiz-begin-container"> <StyledIcon className="quiz-icon" icon={quizIcon} size={219} /> <StyledIcon className="quiz-icon" icon={quizStars} size={219} /> - <div className="quiz-explanation">{t('duel.explanation')}</div> + <div className="quiz-explanation">{t('quiz.explanation')}</div> <div className="button-start"> <StyledStopButton color="secondary" onClick={launchQuiz}> {t('duel.start_button')} diff --git a/src/enum/userChallenge.enum.ts b/src/enum/userChallenge.enum.ts index a364ca5a81ce292fe18dffb605e77234664bf690..41eaf99fa4bae1aedd24731bc87bd3a6ecd0fb3b 100644 --- a/src/enum/userChallenge.enum.ts +++ b/src/enum/userChallenge.enum.ts @@ -7,6 +7,7 @@ export enum UserChallengeUpdateFlag { DUEL_WIN = 14, DUEL_LOSS = 15, QUIZ = 20, + QUIZ_START = 21, MISSION = 30, } diff --git a/src/locales/fr.json b/src/locales/fr.json index 86bc5cc7e8944c620ba07d709fadc1043be853fd..311a66e23ea2ec4b19cfeb4a014af33b4635a82c 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -390,5 +390,8 @@ "message2": "et presque gagné un ours polaire...", "button": "Dommage..." } + }, + "quiz" : { + "explanation" : "Répondez correctement au 5 questions et remportez 5 des 15 étoiles nécessaires pour débloquer le défi final" } } diff --git a/src/services/challenge.service.ts b/src/services/challenge.service.ts index be94502bbd858e5baa31b9176fa1111f219c577c..ac26199d4dd2fff6ae49407e2ab32388b9220672 100644 --- a/src/services/challenge.service.ts +++ b/src/services/challenge.service.ts @@ -26,6 +26,7 @@ import DuelService from 'services/duel.service' import QuizService from 'services/quiz.service' import ConsumptionDataManager from 'services/consumption.service' import { getRelationship } from 'utils/utils' +import quizService from 'services/quiz.service' export default class ChallengeService { private readonly _client: Client @@ -290,7 +291,9 @@ export default class ChallengeService { ): Promise<UserChallenge> { let updatedUserChallenge: UserChallenge let updatedDuel = userChallenge.duel + let updatedQuiz = userChallenge.quiz const duelService = new DuelService(this._client) + const quizService = new QuizService(this._client) switch (flag) { case UserChallengeUpdateFlag.CHALLENGE: case UserChallengeUpdateFlag.DUEL_CONSUMPTION: @@ -350,6 +353,14 @@ export default class ChallengeService { success: UserChallengeSuccess.LOST, } break + case UserChallengeUpdateFlag.QUIZ_START: + updatedQuiz = await quizService.startUserQuiz(userChallenge.quiz) + updatedUserChallenge = { + ...userChallenge, + quiz: updatedQuiz, + } + console.log(updatedUserChallenge) + break default: updatedUserChallenge = userChallenge break diff --git a/src/services/quiz.service.ts b/src/services/quiz.service.ts index 8b1f0afa1662dda5ccc5f59a1483ff8a79228faf..e934815f1a6dfe66bc58763002970065e8c73249 100644 --- a/src/services/quiz.service.ts +++ b/src/services/quiz.service.ts @@ -127,4 +127,11 @@ export default class QuizService { } return userQuiz } + public async startUserQuiz(userQuiz: UserQuiz): Promise<UserQuiz> { + const updatedUserQuiz: UserQuiz = { + ...userQuiz, + state: QuizState.ONGOING, + } + return updatedUserQuiz + } }