diff --git a/src/app/login/onboarding-info/page.tsx b/src/app/login/onboarding-info/page.tsx
index ab9fcc8b..a3d368d0 100644
--- a/src/app/login/onboarding-info/page.tsx
+++ b/src/app/login/onboarding-info/page.tsx
@@ -1,5 +1,19 @@
import OnBoardingInfo from '@/features/onBoarding/components/OnBoardingInfo'
+import OnBoaridngHeader from '@/features/onBoarding/components/OnBoaridngHeader'
export default function OnBoardingInfoPage() {
- return
+ return (
+
+
+ {/* progress */}
+
+
+
+
+
+
+ )
}
diff --git a/src/app/onBoarding/page.tsx b/src/app/onBoarding/page.tsx
deleted file mode 100644
index ecf87aeb..00000000
--- a/src/app/onBoarding/page.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import OnBoardingPrivateInfo from '@/components/OnBoarding/OnBoardingPrivateInfo'
-
-export default function onBoardingPrivateInfoPage() {
- return (
-
-
-
- )
-}
diff --git a/src/features/onBoarding/components/OnBoardingInfo.tsx b/src/features/onBoarding/components/OnBoardingInfo.tsx
index ccdda38b..b8054e4d 100644
--- a/src/features/onBoarding/components/OnBoardingInfo.tsx
+++ b/src/features/onBoarding/components/OnBoardingInfo.tsx
@@ -1,3 +1,85 @@
+'use client'
+import { useState, useEffect } from 'react'
+import { useSearchParams } from 'next/navigation'
+import Input from '@/shared/ui/Input/Input'
+import { Button } from '@/shared/ui/Button/Button'
+
export default function OnBoardingInfo() {
- return
+ const [name, setName] = useState('') // 이름 상태 관리
+ const [phoneNumber, setPhoneNumber] = useState('') // 연락처 상태 관리
+ const [email, setEmail] = useState('') // 이메일 상태 관리
+ const searchParams = useSearchParams()
+
+ useEffect(() => {
+ // URL에서 email 쿼리 파라미터 가져오기
+ const emailParam = searchParams.get('email')
+ if (emailParam) {
+ setEmail(emailParam) // 이메일 상태 업데이트
+ }
+ }, [searchParams])
+
+ const handleNameChange = (event: React.ChangeEvent) => {
+ setName(event.target.value)
+ }
+
+ const handlePhoneNumberChange = (event: React.ChangeEvent) => {
+ const input = event.target.value.replace(/\D/g, '')
+ if (input.length > 11) return
+
+ const formattedNumber = input.replace(
+ /(\d{3})(\d{0,4})(\d{0,4})/,
+ (match, p1, p2, p3) => `${p1}${p2 ? `-${p2}` : ''}${p3 ? `-${p3}` : ''}`,
+ )
+ setPhoneNumber(formattedNumber)
+ }
+
+ // 이름이 입력되고, 전화번호가 최소 10자리 이상일 때 버튼을 활성화
+ const isButtonEnabled = name.trim() !== '' && phoneNumber.replace(/\D/g, '').length >= 10
+
+ return (
+
+
+
기본 정보를 입력해주세요.
+
입력한 정보는 마이페이지에서 확인하고 수정할 수 있어요
+
+
+
이름
+
+
+
+
+
연락처
+
+
+
+
+
+
+ *매칭 성사 시 해당 이메일 주소를 상대방이 볼 수 있어요
+
+ 이메일은 마이페이지 - 계정 설정에서 변경할 수 있어요
+
+
+
+
+
+
+ )
}
diff --git a/src/features/onBoarding/components/OnBoaridngHeader.tsx b/src/features/onBoarding/components/OnBoaridngHeader.tsx
new file mode 100644
index 00000000..07dbf245
--- /dev/null
+++ b/src/features/onBoarding/components/OnBoaridngHeader.tsx
@@ -0,0 +1,11 @@
+import Image from 'next/image'
+
+export default function OnBoaridngHeader() {
+ return (
+ <>
+
+ >
+ )
+}