navigate("/mentorship")}
+ onClick={() => navigate("/mentorship/suggestion")}
>
멘토링 제안하기
diff --git a/src/mentorship/pages/Suggestion.tsx b/src/mentorship/pages/Suggestion.tsx
new file mode 100644
index 0000000..1dec133
--- /dev/null
+++ b/src/mentorship/pages/Suggestion.tsx
@@ -0,0 +1,52 @@
+import { useState } from "react";
+import { useNavigate } from 'react-router-dom';
+import { ArrowLeft } from "lucide-react";
+
+import SuggestInfo from "../components/suggestion/SuggestInfo";
+import SuggestTime from "../components/suggestion/SuggestTime";
+import SuggestSubject from "../components/suggestion/SuggestSubject";
+import { GlobalButton } from "@/global/ui/GlobalButton";
+
+const Suggestion = () => {
+ const navigate = useNavigate();
+
+ return (
+
+
+ {/* 헤더 */}
+
+
navigate("/mentorship/info")}
+ />
+ 제안하기
+
+
+
+
+ {/* 설명 */}
+
+
+ {/* 희망 날짜 */}
+
+
+ {/* 이야기 나누고 싶은 주제 */}
+
+
+
+
+ {/* 제안하기 버튼 */}
+
+ navigate("/user/payment")}
+ >
+ 멘토링 제안하기
+
+
+
+ );
+};
+
+export default Suggestion;
\ No newline at end of file
diff --git a/src/user/components/ProfileEdit/EditBio.tsx b/src/user/components/ProfileEdit/EditBio.tsx
index 14632ef..4baa541 100644
--- a/src/user/components/ProfileEdit/EditBio.tsx
+++ b/src/user/components/ProfileEdit/EditBio.tsx
@@ -8,13 +8,10 @@ interface EditBioProps {
setMenteeData?: React.Dispatch
>;
}
-const EditBio = ({
- mentorData,
- setMentorData,
- menteeData,
- setMenteeData,
-}: EditBioProps) => {
- if (!mentorData && !menteeData) return null; // 데이터가 없으면 렌더링 X
+const EditBio = ({ mentorData, setMentorData, menteeData, setMenteeData }: EditBioProps) => {
+
+ if (!mentorData && !menteeData) return null;
+
return (
자기소개
diff --git a/src/user/components/profileInfo/MentorInfoProfile.tsx b/src/user/components/profileInfo/MentorInfoProfile.tsx
index 99e69f5..e87bc85 100644
--- a/src/user/components/profileInfo/MentorInfoProfile.tsx
+++ b/src/user/components/profileInfo/MentorInfoProfile.tsx
@@ -3,7 +3,7 @@ interface MentorInfoProfileProps {
name: string;
role: string;
experience: number;
- count: string;
+ count: number;
image: string;
}
diff --git a/src/user/pages/ProfileEdit/MenteeInfo.tsx b/src/user/pages/ProfileEdit/MenteeInfo.tsx
index bb4d138..5b58432 100644
--- a/src/user/pages/ProfileEdit/MenteeInfo.tsx
+++ b/src/user/pages/ProfileEdit/MenteeInfo.tsx
@@ -31,41 +31,45 @@ const MenteeInfo = () => {
});
return (
-
+
- {/* 보라색 */}
-
+
- {/* 헤더 */}
-
-
navigate("/user")}
+ {/* 보라색 */}
+
+
+ {/* 헤더 */}
+
+
navigate("/user")}
+ />
+ 멘티 프로필
+
+
+
+ {/* 프로필 섹션 */}
+
-
멘티 프로필
-
-
- {/* 프로필 섹션 */}
-
- {/* 자기소개 */}
-
{/* 수정 버튼 */}
-
+
navigate("/user/menteeedit")}
>
diff --git a/src/user/pages/ProfileEdit/MenteeProfileEdit.tsx b/src/user/pages/ProfileEdit/MenteeProfileEdit.tsx
index c0342a4..847e7ac 100644
--- a/src/user/pages/ProfileEdit/MenteeProfileEdit.tsx
+++ b/src/user/pages/ProfileEdit/MenteeProfileEdit.tsx
@@ -33,8 +33,8 @@ const MenteeProfileEdit = () => {
// 수정된 내용을 localStorage에 저장하는 함수 (api 연결시 제거)
const handleSave = () => {
- localStorage.setItem("menteeData", JSON.stringify(menteeData)); // ✅ localStorage에 저장
- navigate("/user/menteeinfo"); // ✅ 수정 완료 후 MenteeInfo로 이동
+ localStorage.setItem("menteeData", JSON.stringify(menteeData)); // localStorage에 저장
+ navigate("/user/menteeinfo"); // 수정 완료 후 MenteeInfo로 이동
};
// 작성 완료 버튼 활성화 여부 확인
@@ -43,10 +43,10 @@ const MenteeProfileEdit = () => {
menteeData.introduction.bio.trim() !== "";
return (
-
+
{/* 헤더 */}
-
+
- {/* 프로필 섹션 */}
-
+
- {/* 자기소개 섹션 */}
-
+ {/* 프로필 섹션 */}
+
+
+ {/* 자기소개 섹션 */}
+
+
+
{/* 저장 버튼 */}
-
+
isFormComplete && navigate("/user/menteeinfo")}
onClick={handleSave}
diff --git a/src/user/pages/ProfileEdit/MentorInfo.tsx b/src/user/pages/ProfileEdit/MentorInfo.tsx
index d4b735e..5ab31b3 100644
--- a/src/user/pages/ProfileEdit/MentorInfo.tsx
+++ b/src/user/pages/ProfileEdit/MentorInfo.tsx
@@ -28,7 +28,7 @@ const MentorInfo = () => {
role: "브랜드 마케팅/카피라이팅",
experience: 6,
},
- count: "716",
+ count: 716,
image: {
fileName: "",
filePath: "",
@@ -56,61 +56,68 @@ const MentorInfo = () => {
});
return (
-
-
- {/* 보라색 */}
-
-
- {/* 헤더 */}
-
-
navigate("/auth")}
+
+
+
+
+ {/* 보라색 */}
+
+
+ {/* 헤더 */}
+
+
navigate("/auth")}
+ />
+ 멘토 프로필
+
+
+
+ {/* 프로필 섹션 */}
+
+
+
+
+
+ {/* 자기소개 */}
+
-
멘토 프로필
-
+
+ {/* 선호 시간대 */}
+
+
+ {/* 멘토링 분야 & 해시태그 */}
+
+
+ {/* 멘티에게 전하고 싶은 말 */}
+
+
+ {/* 포트폴리오 */}
+
+
-
- {/* 프로필 섹션 */}
-
- {/* 자기소개 */}
-
-
- {/* 선호 시간대 */}
-
-
- {/* 멘토링 분야 & 해시태그 */}
-
-
- {/* 멘티에게 전하고 싶은 말 */}
-
-
- {/* 포트폴리오 */}
-
-
- {/* 멘토링 제안하기 버튼 */}
-
+ {/* 수정하기 버튼 */}
+
navigate("/user/mentoredit")}
>
diff --git a/src/user/pages/ProfileEdit/MentorProfileEdit.tsx b/src/user/pages/ProfileEdit/MentorProfileEdit.tsx
index 4306d84..30b81ae 100644
--- a/src/user/pages/ProfileEdit/MentorProfileEdit.tsx
+++ b/src/user/pages/ProfileEdit/MentorProfileEdit.tsx
@@ -14,56 +14,54 @@ import EditPortfolio from '@/user/components/ProfileEdit/EditPortfolio';
const MentorProfileEdit = () => {
const navigate = useNavigate();
+
// 테스트용 멘티 데이터 && localStorage에서 데이터 불러오기 (api 연결시 제거)
const [mentorData, setMentorData] = useState(() => {
- const savedData = localStorage.getItem('mentorData');
- return savedData
- ? JSON.parse(savedData)
- : {
- nickname: '바이',
- email: 'abcd@gmail.com',
- education: {
- schoolName: '경북대학교',
- major: '컴퓨터공학',
- },
- organization: {
- name: 'OO주식회사',
- role: '브랜드 마케팅/카피라이팅',
- experience: 6,
- },
- count: '716',
- image: {
- fileName: '',
- filePath: '',
- },
- introduction: {
- summary: '브랜드 마케팅에 대한 모든 것을 알려드립니다.',
- bio: '안녕하세요!\n저는 OO대학교 경영학과를 졸업하고 현재 XXXX에 다니고 있는 ‘바이’입니다.',
- },
- availableDays: ['월', '목'],
- timezone: {
- startTime: { period: '오전', hour: '10', minute: '00' },
- endTime: { period: '오후', hour: '18', minute: '00' },
- },
-
- mentoringField: ['취업 준비', '커리어 고민'],
- hashtags: ['마케팅', '브랜드마케팅'],
- message:
- '안녕하세요, 멘티 여러분!\n브랜드 마케팅 경험을 바탕으로 여러분의 성장을 지원하고 싶습니다.',
- portfolio: [
- {
- url: 'https://example.com/portfolio1.pdf',
- description: '브랜드 마케팅 포트폴리오.pdf',
- size: 25000000,
- },
- ],
- };
+ const savedData = localStorage.getItem("mentorData");
+ return savedData ? JSON.parse(savedData) : {
+ nickname: "바이",
+ email: "abcd@gmail.com",
+ education: {
+ schoolName: "경북대학교",
+ major: "컴퓨터공학",
+ },
+ organization: {
+ name: "OO주식회사",
+ role: "브랜드 마케팅/카피라이팅",
+ experience: 6,
+ },
+ count: 716,
+ image: {
+ fileName: "",
+ filePath: "",
+ },
+ introduction: {
+ summary: "브랜드 마케팅에 대한 모든 것을 알려드립니다.",
+ bio: "안녕하세요!\n저는 OO대학교 경영학과를 졸업하고 현재 XXXX에 다니고 있는 ‘바이’입니다.",
+ },
+ availableDays: ["월", "목"],
+ timezone: {
+ startTime: { period: "오전", hour: "10", minute: "00"},
+ endTime: { period: "오후", hour: "18", minute: "00"},
+ },
+ mentoringField: ['취업 준비', '커리어 고민'],
+ hashtags: ['마케팅', '브랜드마케팅'],
+ message:
+ '안녕하세요, 멘티 여러분!\n브랜드 마케팅 경험을 바탕으로 여러분의 성장을 지원하고 싶습니다.',
+ portfolio: [
+ {
+ url: 'https://example.com/portfolio1.pdf',
+ description: '브랜드 마케팅 포트폴리오.pdf',
+ size: 25000000,
+ },
+ ],
+ };
});
// 수정된 내용을 localStorage에 저장하는 함수 (API 연결 시 제거)
const handleSave = () => {
- localStorage.setItem('mentorData', JSON.stringify(mentorData)); // ✅ localStorage에 저장
- navigate('/user/mentorinfo'); // ✅ 수정 완료 후 MentorInfo로 이동
+ localStorage.setItem("mentorData", JSON.stringify(mentorData)); // localStorage에 저장
+ navigate("/user/mentorinfo"); // 수정 완료 후 MentorInfo로 이동
};
// 작성 완료 버튼 활성화 여부 확인
@@ -73,46 +71,51 @@ const MentorProfileEdit = () => {
mentorData.availableDays.length > 0;
return (
-
+
+
{/* 헤더 */}
-
+
navigate('/mentorship/info')}
+ onClick={() => navigate("/user/mentorinfo")}
/>
프로필 수정
+
+
- {/* 프로필 섹션 */}
-
-
- {/* 자기소개 섹션 */}
-
+ {/* 프로필 섹션 */}
+
- {/* 선호 시간대 */}
-
+ {/* 자기소개 섹션 */}
+
+
+ {/* 선호 시간대 */}
+
- {/* 멘토링 분야 */}
-
+ {/* 멘토링 분야 */}
+
- {/* 멘티에게 전하고 싶은 말 */}
-
+ {/* 멘티에게 전하고 싶은 말 */}
+
+
+ {/* 경험 해시태그 */}
+
- {/* 경험 해시태그 */}
-
+ {/* 포트폴리오*/}
+
- {/* 포트폴리오*/}
-
+
{/* 저장 버튼 */}
-
-
+
+
작성 완료
diff --git a/src/user/types.ts b/src/user/types.ts
index 638be12..65dc339 100644
--- a/src/user/types.ts
+++ b/src/user/types.ts
@@ -10,7 +10,7 @@ export interface MentorData {
role: string;
experience: number;
};
- count: string;
+ count: number;
image: {
fileName: string;
filePath: string;