11import { ChangeEvent , FormEvent , useState } from "react" ;
22import { useNavigate } from "react-router-dom" ;
33import Header from "@/components/header/Header" ;
4+ import useLayoutSize from "@/hooks/useLayoutSize" ;
45const MbtiTestIntro = ( ) => {
56 const [ name , setName ] = useState ( "" ) ;
67 const navigate = useNavigate ( ) ;
7-
8- const handleChange = ( e :ChangeEvent < HTMLInputElement > ) => {
8+ const viewport = useLayoutSize ( ) ;
9+ const bannerSize =
10+ viewport === "sm" ? "360" : viewport === "md" ? "375" : "500" ;
11+ const handleChange = ( e : ChangeEvent < HTMLInputElement > ) => {
912 setName ( e . target . value ) ;
10- }
13+ } ;
1114
1215 const handleSubmit = ( e : FormEvent < HTMLFormElement > ) => {
1316 e . preventDefault ( ) ;
@@ -21,37 +24,48 @@ const MbtiTestIntro = () => {
2124
2225 localStorage . setItem ( "mbti-test-name" , name ) ;
2326 navigate ( "/mbti-test-progress" ) ;
24- }
27+ } ;
2528
2629 return (
27- < main className = "sm:h-[812px] h-[1080px] flex flex-col" >
28- < Header title = "상대방 MBTI 유추 테스트" />
29- < div className = "relative flex-1 flex flex-col items-center w-full h-[756px]" >
30- < img src = "/image/mbti-test/500px/intro_500.png" alt = "intro image" className = "inset-0 w-full h-full" />
31- < span className = "absolute top-[38px] font-medium text-lg" > 그 사람의 mbti는 뭘까?</ span >
32- < h2 className = "absolute top-[74px] font-extrabold text-[32px] text-center" >
30+ < main className = "flex h-[1080px] flex-col sm:h-[812px]" >
31+ < Header title = "상대방 MBTI 유추 테스트" />
32+ < div className = "relative flex h-[756px] w-full flex-1 flex-col items-center" >
33+ < img
34+ src = { `/image/mbti-test/${ bannerSize } px/intro_${ bannerSize } .png` }
35+ alt = "intro image"
36+ className = "inset-0 h-full w-full"
37+ />
38+ < span className = "absolute top-[38px] text-lg font-medium" >
39+ 그 사람의 mbti는 뭘까?
40+ </ span >
41+ < h2 className = "absolute top-[74px] text-center text-[32px] leading-10 font-extrabold" >
3342 < span className = "text-[#2714FF]" > 상대방</ span > MBTI
3443 < br />
3544 유추 테스트
3645 </ h2 >
37- < form className = "absolute top-[472px] flex flex-col items-center" onSubmit = { handleSubmit } >
38- < label htmlFor = "name" className = "font-medium text-lg " > MBTI를 알고 싶은 상대의 이름</ label >
46+ < form
47+ className = "absolute top-[472px] flex flex-col items-center"
48+ onSubmit = { handleSubmit }
49+ >
50+ < label htmlFor = "name" className = "text-lg font-medium " >
51+ MBTI를 알고 싶은 상대의 이름
52+ </ label >
3953 < input
4054 type = "text"
4155 id = "name"
4256 onChange = { handleChange }
43- className = "bg-white border-gray-50 w-full rounded-lg mt-[30px] h-[68px] text-center"
57+ className = "mt-[30px] h-[68px] w-full rounded-lg border-gray-50 bg-white text-center"
4458 />
4559 < button
4660 type = "submit"
47- className = "bg-primary-normal hover:opacity-80 mt-[60px] rounded-lg w-[320px] lg:w-[460px] h-[60px] font-bold text-white"
61+ className = "mt-[60px] h-[60px] w-[320px] rounded-lg bg-primary-normal font-bold text-white hover:opacity-80 lg:w-[460px] "
4862 >
4963 시작하기
5064 </ button >
51- </ form >
65+ </ form >
5266 </ div >
5367 </ main >
54- )
55- }
68+ ) ;
69+ } ;
5670
57- export default MbtiTestIntro ;
71+ export default MbtiTestIntro ;
0 commit comments