@@ -43,11 +43,16 @@ export default function Page4() {
4343 const [ lastClickTime , setLastClickTime ] = useState < number > ( 0 ) ;
4444 const [ selectedMemberChallenge , setSelectedMemberChallenge ] = useState < ChallengeResult | null > ( null ) ;
4545 const [ isModalOpen , setIsModalOpen ] = useState ( false ) ;
46+ const [ isRedeemed , setIsRedeemed ] = useState ( false ) ;
4647
4748 // This useEffect will set the initial success/failure based on progressStatus from the store
4849 useEffect ( ( ) => {
49- if ( progressStatus === 'CHALLENGE_SUCCESS' || progressStatus === 'REDEEMED' ) {
50+ if ( progressStatus === 'CHALLENGE_SUCCESS' ) {
5051 setResult ( '성공' ) ;
52+ setIsRedeemed ( false ) ;
53+ } else if ( progressStatus === 'REDEEMED' ) {
54+ setResult ( '성공' ) ;
55+ setIsRedeemed ( true ) ;
5156 } else if ( progressStatus === 'CHALLENGE_FAILED' ) {
5257 setResult ( '실패' ) ;
5358 } else {
@@ -90,6 +95,8 @@ export default function Page4() {
9095 } ;
9196
9297 const handleSuccessClick = async ( ) => {
98+ if ( isRedeemed ) return ;
99+
93100 const currentTime = new Date ( ) . getTime ( ) ;
94101 if ( currentTime - lastClickTime < 2000 ) { // 2 seconds window
95102 setClickCount ( prevCount => prevCount + 1 ) ;
@@ -115,7 +122,7 @@ export default function Page4() {
115122 }
116123
117124 alert ( '수령 완료!' ) ;
118-
125+ setIsRedeemed ( true ) ;
119126 }
120127 } ;
121128
@@ -154,7 +161,7 @@ export default function Page4() {
154161 < >
155162 < p className = "text-3xl font-bold" > 성공!</ p >
156163 < Image
157- src = "/ free-icon-success.png"
164+ src = { isRedeemed ? '/redeemed-gift.svg' : '/ free-icon-success.png' }
158165 alt = "Success"
159166 width = { 100 }
160167 height = { 100 }
0 commit comments