@@ -12,6 +12,10 @@ import { useGetSubmitPrepareData } from '@/entities/submitCode/submission/model/
1212import { useRouter , useSearchParams } from 'next/navigation' ;
1313import useSubscribeProblem from '../hooks/useSubscribeProblem' ;
1414import Cookies from 'js-cookie' ;
15+ import { Tooltip , TooltipContent , TooltipTrigger } from '@/components/ui/tooltip' ;
16+ import { useUserStore } from '@/entities/user/model/store' ;
17+ import { useState } from 'react' ;
18+ import { is } from 'zod/v4/locales' ;
1519interface TerminalPanelProps {
1620 problemId : ProblemId ;
1721 setMode : ( mode : Mode ) => void ;
@@ -25,10 +29,13 @@ export default function TerminalPanel({
2529 mode,
2630 sourceCodeData,
2731} : TerminalPanelProps ) {
32+ const [ isPanelButtonHovered , setIsPanelButtonHovered ] = useState ( {
33+ review : false ,
34+ } ) ;
2835 const router = useRouter ( ) ;
2936 const searchParams = useSearchParams ( ) ;
3037 const accessToken = Cookies . get ( 'accessToken' ) ;
31-
38+ const { user } = useUserStore ( ) ;
3239 useGetSubmitPrepareData ( problemId , ! ! accessToken ) ;
3340 const { submitPrepareData } = useProblemWebSocketStore ( ) ;
3441
@@ -48,6 +55,7 @@ export default function TerminalPanel({
4855 setMode ( 'result' ) ;
4956 } ;
5057
58+ console . log ( isPanelButtonHovered . review ) ;
5159 return (
5260 < div className = "flex items-center justify-between p-2 border-b border-[#333]" >
5361 < div className = "flex items-center space-x-2" >
@@ -66,14 +74,26 @@ export default function TerminalPanel({
6674 className = { clsx ( mode === 'result' ? 'text-white' : 'text-[#ccc] hover:text-secondary' ) }
6775 />
6876 </ PanelButton >
69- < PanelButton
70- onClick = { ( ) => setMode ( 'review' ) }
71- currentMode = { mode }
72- targetMode = "review"
73- text = "CODE REVIEW"
74- >
75- < Icon . TerminalReviewIcon />
76- </ PanelButton >
77+
78+ < Tooltip open = { ! user ?. verified && isPanelButtonHovered . review } >
79+ < TooltipTrigger asChild >
80+ < div
81+ onMouseEnter = { ( ) => setIsPanelButtonHovered ( ( prev ) => ( { ...prev , review : true } ) ) }
82+ onMouseLeave = { ( ) => setIsPanelButtonHovered ( ( prev ) => ( { ...prev , review : false } ) ) }
83+ >
84+ < PanelButton
85+ onClick = { ( ) => setMode ( 'review' ) }
86+ currentMode = { mode }
87+ targetMode = "review"
88+ text = "CODE REVIEW"
89+ disabled = { ! user ?. verified }
90+ >
91+ < Icon . TerminalReviewIcon />
92+ </ PanelButton >
93+ </ div >
94+ </ TooltipTrigger >
95+ < TooltipContent > 이메일 인증 완료 후 이용 가능합니다</ TooltipContent >
96+ </ Tooltip >
7797 </ div >
7898 < GitPushDialog />
7999 </ div >
0 commit comments