11import { useContext , useEffect , useState } from "react" ;
22
33// components
4- import { Leaderboard , Loading } from "@/components" ;
4+ import { Leaderboard , Loading , PageContainer } from "@/components" ;
55
66// context
77import { GlobalDispatchContext , GlobalStateContext } from "@context/GlobalContext" ;
8- import { SET_QUEST_DETAILS } from "@/context/types" ;
8+ import { SET_QUEST_DETAILS , SET_VISITOR_INFO } from "@/context/types" ;
99
1010// utils
1111import { backendAPI } from "@utils/backendAPI" ;
@@ -17,18 +17,29 @@ export const QuestItemClicked = () => {
1717
1818 // context
1919 const dispatch = useContext ( GlobalDispatchContext ) ;
20- const { questDetails, hasInteractiveParams } = useContext ( GlobalStateContext ) ;
21- const { questItemImage } = questDetails || { } ;
20+ const { hasInteractiveParams } = useContext ( GlobalStateContext ) ;
2221
2322 useEffect ( ( ) => {
2423 if ( hasInteractiveParams ) {
2524 backendAPI
2625 . post ( "/quest-item-clicked" )
2726 . then ( ( response ) => {
28- const { addedClick, numberAllowedToCollect, totalCollectedToday, questDetails } = response . data ;
27+ const {
28+ addedClick,
29+ numberAllowedToCollect,
30+ totalCollectedToday,
31+ questDetails,
32+ visitor,
33+ visitorInventory,
34+ badges,
35+ } = response . data ;
2936 dispatch ! ( {
3037 type : SET_QUEST_DETAILS ,
31- payload : { questDetails } ,
38+ payload : { questDetails, badges } ,
39+ } ) ;
40+ dispatch ! ( {
41+ type : SET_VISITOR_INFO ,
42+ payload : { visitor, visitorInventory } ,
3243 } ) ;
3344 if ( addedClick ) {
3445 setCollectedText ( `${ totalCollectedToday } /${ numberAllowedToCollect } collected today` ) ;
@@ -50,25 +61,13 @@ export const QuestItemClicked = () => {
5061 if ( isLoading ) return < Loading /> ;
5162
5263 return (
53- < div className = "container p-6 items-center justify-start" >
54- { questItemImage ? < img alt = "Find me" className = "mx-auto" src = { questItemImage } /> : < div /> }
55- < div className = "flex flex-col mb-6 mt-4" >
56- < h1 className = "h2 text-center" > Quest</ h1 >
57- </ div >
58- < div className = "container py-6 items-center justify-start" >
59- { message && (
60- < div className = "flex flex-col p-1" >
61- < p > { message } </ p >
62- </ div >
63- ) }
64- { collectedText && (
65- < div className = "flex flex-col p-1" >
66- < p > { collectedText } </ p >
67- </ div >
68- ) }
64+ < PageContainer isLoading = { isLoading } showAdminIcon = { false } >
65+ < div className = "grid gap-4" >
66+ { message && < p > { message } </ p > }
67+ { collectedText && < p > { collectedText } </ p > }
68+ < Leaderboard isKeyAsset = { false } />
6969 </ div >
70- < Leaderboard isKeyAsset = { false } />
71- </ div >
70+ </ PageContainer >
7271 ) ;
7372} ;
7473
0 commit comments