@@ -15,15 +15,15 @@ import Modal from "@/widgets/Modal";
1515import Loading from "@/widgets/Loading" ;
1616import defaultProfile from "/assets/defaultProfile.png" ;
1717
18- const ProfileCard = ( { onClickInterest } : { onClickInterest : ( ) => void } ) => {
18+ const ProfileCard = ( { onClickInterest } : { onClickInterest : ( ) => void } ) => {
1919 const { user, updateUsername, setProfileImg } = useAuth ( ) ;
2020 const { interestCategories } = useUserData ( ) ;
2121 const { timetables } = useTimetable ( ) ;
2222 const [ profilePreviewUrl , setProfilePreviewUrl ] = useState < string > (
23- ( user ?. profileImageUrl && user . profileImageUrl !== "" )
24- ? user . profileImageUrl
25- : defaultProfile
26- ) ;
23+ user ?. profileImageUrl && user . profileImageUrl !== ""
24+ ? user . profileImageUrl
25+ : defaultProfile ,
26+ ) ;
2727 const [ imgFile , setImgFile ] = useState < File | null > ( null ) ;
2828 const [ , setIsDefaultProfile ] = useState < boolean > ( false ) ;
2929 const [ username , setUsername ] = useState < string > (
@@ -58,13 +58,12 @@ const ProfileCard = ({ onClickInterest } : { onClickInterest: () => void }) => {
5858 } ;
5959
6060 useEffect ( ( ) => {
61- if ( user ?. profileImageUrl && user . profileImageUrl . trim ( ) !== "" ) {
62- setProfilePreviewUrl ( user . profileImageUrl ) ;
63- } else {
64- setProfilePreviewUrl ( defaultProfile ) ;
65- }
66- } , [ user ?. profileImageUrl ] ) ;
67-
61+ if ( user ?. profileImageUrl && user . profileImageUrl . trim ( ) !== "" ) {
62+ setProfilePreviewUrl ( user . profileImageUrl ) ;
63+ } else {
64+ setProfilePreviewUrl ( defaultProfile ) ;
65+ }
66+ } , [ user ?. profileImageUrl ] ) ;
6867 // profile image preview url cleanup (cleanup callback is executed before next effect / component unmount)
6968 useEffect ( ( ) => {
7069 return ( ) => {
@@ -137,25 +136,33 @@ const ProfileCard = ({ onClickInterest } : { onClickInterest: () => void }) => {
137136 />
138137 ) }
139138 </ div >
140- < button className = { styles . preferenceCol } type = 'button' onClick = { onClickInterest } >
139+ < button
140+ className = { styles . preferenceCol }
141+ type = "button"
142+ onClick = { onClickInterest }
143+ >
141144 < div className = { styles . preferenceHeader } >
142- < FaStar size = { 24 } color = "#828282" style = { { marginRight : 12 } } />
145+ < FaStar size = { 24 } color = "#828282" style = { { marginRight : 12 } } />
143146 < span > 행사 보기 우선순위</ span >
144147 </ div >
145- { ( interestCategories && interestCategories . length > 0 ) ? (
148+ { interestCategories && interestCategories . length > 0 ? (
146149 < div >
147150 < ul className = { styles . preferenceChips } >
148- { interestCategories . map ( ( cat , idx ) => (
149- < li className = { `${ styles . preferenceChip } ${ cat . groupId === 3 && styles . category } ${ cat . groupId === 2 && styles . organization } ` } key = { cat . id } >
150- { `${ idx + 1 } 순위: ${ cat . name } ` }
151- </ li >
152- ) ) }
153- </ ul >
154- </ div >
151+ { interestCategories . map ( ( cat , idx ) => (
152+ < li
153+ className = { `${ styles . preferenceChip } ${ cat . groupId === 3 && styles . category } ${ cat . groupId === 2 && styles . organization } ` }
154+ key = { cat . id }
155+ >
156+ { `${ idx + 1 } 순위: ${ cat . name } ` }
157+ </ li >
158+ ) ) }
159+ </ ul >
160+ </ div >
155161 ) : (
156- < span className = { styles . notYetText } > 클릭해서 우선순위로 확인할 행사를 설정해보세요!</ span >
157- )
158- }
162+ < span className = { styles . notYetText } >
163+ 클릭해서 우선순위로 확인할 행사를 설정해보세요!
164+ </ span >
165+ ) }
159166 </ button >
160167 < button
161168 type = "button"
@@ -189,35 +196,34 @@ const MyPage = () => {
189196 return (
190197 < div className = { styles . main } >
191198 < Navigationbar />
192- { isLoading ?
193- (
194- < Loading />
195- )
196- : (
197- isEditingInterest ? (
198- < Onboarding isEditing = { true } onFinishEdit = { ( ) => setIsEditingInterest ( false ) } />
199- ) : (
200- user ? (
201- < div className = { styles . mypageContainer } >
202- < ProfileCard onClickInterest = { ( ) => setIsEditingInterest ( ( ) => true ) } />
203- < div className = { styles . widgetsWrapper } >
204- < BookmarkWidget />
205- < MemoWidget />
206- </ div >
207- </ div >
208- ) : (
209- < div className = { styles . notFound } >
210- < Modal
211- content = "마이페이지 이용을 위해서는 로그인을 해주세요."
212- leftText = "로그인"
213- rightText = "회원가입"
214- onLeftClick = { ( ) => navigate ( '/auth/login' ) }
215- onRightClick = { ( ) => navigate ( '/auth/signup' ) }
216- onClose = { null }
217- />
199+ { isLoading ? (
200+ < Loading />
201+ ) : isEditingInterest ? (
202+ < Onboarding
203+ isEditing = { true }
204+ onFinishEdit = { ( ) => setIsEditingInterest ( false ) }
205+ />
206+ ) : user ? (
207+ < div className = { styles . mypageContainer } >
208+ < ProfileCard
209+ onClickInterest = { ( ) => setIsEditingInterest ( ( ) => true ) }
210+ />
211+ < div className = { styles . widgetsWrapper } >
212+ < BookmarkWidget />
213+ < MemoWidget />
218214 </ div >
219- )
220- )
215+ </ div >
216+ ) : (
217+ < div className = { styles . notFound } >
218+ < Modal
219+ content = "마이페이지 이용을 위해서는 로그인을 해주세요."
220+ leftText = "로그인"
221+ rightText = "회원가입"
222+ onLeftClick = { ( ) => navigate ( "/auth/login" ) }
223+ onRightClick = { ( ) => navigate ( "/auth/signup" ) }
224+ onClose = { null }
225+ />
226+ </ div >
221227 ) }
222228 </ div >
223229 ) ;
0 commit comments