|
1 | 1 | 'use client'; |
2 | 2 | import { usePostLogout, usePostWithdraw } from '@apis/auth'; |
3 | 3 | import { useGetMyPage } from '@apis/user'; |
| 4 | +import PopupBtn from '@components/common/button/popupBtn/PopupBtn'; |
4 | 5 | import ModalContainer from '@components/common/modal/ModalContainer'; |
5 | 6 | import PageName from '@components/common/pageName/PageName'; |
6 | 7 | import ExceptLayout from '@components/except/exceptLayout/ExceptLayout'; |
7 | 8 | import Footer from '@components/footer/Footer'; |
| 9 | +import ResultCard from '@components/test/resultCard/ResultCard'; |
8 | 10 | import UserInfo from '@components/userInfo/userInfo'; |
| 11 | +import { TestType } from '@constants/test'; |
| 12 | +import { useRouter } from 'next/navigation'; |
9 | 13 | import { useState } from 'react'; |
10 | 14 | import useEventLogger from 'src/gtm/hooks/useEventLogger'; |
11 | 15 |
|
12 | 16 | import * as styles from './myPage.css'; |
13 | 17 |
|
| 18 | +// const MOCK_USER_DATA_DONE = { |
| 19 | +// type: 'IAJ', |
| 20 | +// typeContent: 'μμν νΈμν λͺ©νμ΄', |
| 21 | +// nickname: 'λ°°μκ²½', |
| 22 | +// email: 'jjeolloga@gmail.com', |
| 23 | +// hasType: true, |
| 24 | +// }; |
| 25 | + |
| 26 | +// const MOCK_USER_DATA_NONE = { |
| 27 | +// type: null, |
| 28 | +// typeContent: null, |
| 29 | +// nickname: 'λ°°μκ²½', |
| 30 | +// email: 'jjeolloga@gmail.com', |
| 31 | +// hasType: false, |
| 32 | +// }; |
| 33 | + |
14 | 34 | const MyPage = () => { |
| 35 | + const router = useRouter(); |
15 | 36 | const [isLogoutModalOpen, setIsLogoutModalOpen] = useState(false); |
16 | 37 | const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); |
17 | 38 |
|
| 39 | + // const userData = MOCK_USER_DATA_DONE; |
| 40 | + // const userData = MOCK_USER_DATA_NONE; |
| 41 | + |
18 | 42 | const postLogout = usePostLogout(); |
19 | 43 | const postWithdraw = usePostWithdraw(); |
20 | 44 |
|
21 | 45 | const { data, isLoading, isError } = useGetMyPage(); |
| 46 | + const userData = data?.data; |
22 | 47 |
|
23 | 48 | const { logClickEvent } = useEventLogger('my'); |
24 | 49 |
|
| 50 | + const handleGoToTest = () => { |
| 51 | + router.push('/test'); |
| 52 | + }; |
| 53 | + |
| 54 | + const handleRecommend = () => { |
| 55 | + router.push('/'); |
| 56 | + // router.push('/curation'); |
| 57 | + }; |
| 58 | + |
| 59 | + const handleReTest = () => { |
| 60 | + router.push('/test'); |
| 61 | + }; |
| 62 | + |
25 | 63 | const handleLogoutClick = () => { |
26 | 64 | setIsLogoutModalOpen(true); |
27 | 65 |
|
@@ -68,10 +106,42 @@ const MyPage = () => { |
68 | 106 | return <ExceptLayout type="networkError" />; |
69 | 107 | } |
70 | 108 |
|
| 109 | + if (!userData) { |
| 110 | + return <ExceptLayout type="networkError" />; |
| 111 | + } |
| 112 | + |
71 | 113 | return ( |
72 | 114 | <div className={styles.myPageWrapper}> |
73 | 115 | <div className={styles.userInfoContainer}> |
74 | 116 | <PageName title="λ§μ΄νμ΄μ§" /> |
| 117 | + |
| 118 | + <section className={styles.resultSection}> |
| 119 | + <div className={styles.cardWrapper}> |
| 120 | + <ResultCard color="NONE" type={(userData.type as TestType) || undefined} /> |
| 121 | + </div> |
| 122 | + |
| 123 | + <div className={styles.profileInfoBox}> |
| 124 | + <p className={styles.nameRow}> |
| 125 | + {userData.hasType && ( |
| 126 | + <span className={styles.typeContent}>{userData.typeContent}</span> |
| 127 | + )} |
| 128 | + <span className={styles.nickname}>{userData.nickname}</span> λ |
| 129 | + </p> |
| 130 | + <p className={styles.email}>{userData.email}</p> |
| 131 | + </div> |
| 132 | + |
| 133 | + <div className={styles.buttonGroup}> |
| 134 | + {userData.hasType ? ( |
| 135 | + <> |
| 136 | + <PopupBtn color="green" label="μ μΆμ²λ°κΈ°" onClick={handleRecommend} /> |
| 137 | + <PopupBtn color="gray" label="ν
μ€νΈ λ€μνκΈ°" onClick={handleReTest} /> |
| 138 | + </> |
| 139 | + ) : ( |
| 140 | + <PopupBtn color="green" label="μ±ν₯ ν
μ€νΈνκΈ°" onClick={handleGoToTest} /> |
| 141 | + )} |
| 142 | + </div> |
| 143 | + </section> |
| 144 | + |
75 | 145 | <UserInfo |
76 | 146 | data={data?.data} |
77 | 147 | onLogoutClick={handleLogoutClick} |
|
0 commit comments