@@ -114,22 +114,45 @@ const Feed: React.FC<FeedProps> = ({ feed }) => {
114114 }
115115 } ;
116116
117- const handleMoreButtonClick = ( ) => {
117+ const handleUserClick = ( e : React . MouseEvent ) => {
118+ e . stopPropagation ( ) ;
119+ sessionStorage . setItem ( 'scrollPosition' , String ( window . scrollY ) ) ;
120+ nav ( `/users/${ feed . user . userId } ` ) ;
121+ } ;
122+
123+ const handleMoreButtonClick = ( e : React . MouseEvent ) => {
124+ e . stopPropagation ( ) ;
118125 setIsOptionsBottomSheetOpen ( true ) ;
119126 } ;
120127
121- const handleRejectButtonClick = ( ) => {
128+ const handleRejectButtonClick = ( e : React . MouseEvent ) => {
129+ e . stopPropagation ( ) ;
122130 setIsBlockModalOpen ( true ) ;
123131 } ;
124132
125- const handleLikeButtonClick = ( ) => {
133+ const handleLikeButtonClick = ( e : React . MouseEvent ) => {
134+ e . stopPropagation ( ) ;
126135 togglePostLikeStatus ( ) ;
127136 } ;
128137
129- const handleMatchingButtonClick = ( ) => {
138+ const handleMatchingButtonClick = ( e : React . MouseEvent ) => {
139+ e . stopPropagation ( ) ;
130140 setIsMatchingCommentBottomSheetOpen ( true ) ;
131141 } ;
132142
143+ const handleClickFeed = ( e : React . MouseEvent ) => {
144+ const target = e . target as HTMLElement ;
145+
146+ // 페이지네이션 bullet 클릭 시 이벤트 차단
147+ if ( target . classList . contains ( 'swiper-pagination-bullet' ) ) {
148+ e . stopPropagation ( ) ;
149+ } else {
150+ // 그 외에 게시글 상세 조회 페이지로 이동
151+ sessionStorage . setItem ( 'scrollPosition' , String ( window . scrollY ) ) ;
152+ nav ( `/post/${ feed . postId } ` ) ;
153+ }
154+ } ;
155+
133156 // 게시글 옵션(더보기) 바텀시트
134157 const optionsBottomSheetProps : OptionsBottomSheetProps = {
135158 domain : 'post' ,
@@ -178,14 +201,14 @@ const Feed: React.FC<FeedProps> = ({ feed }) => {
178201 } ;
179202
180203 return (
181- < FeedWrapper >
204+ < FeedWrapper onClick = { handleClickFeed } >
182205 < OptionsBottomSheet { ...optionsBottomSheetProps } />
183206 { isBlockModalOpen && < Modal { ...blockModalProps } /> }
184207 < CommentBottomSheet { ...matchingCommentBottomSheetProps } />
185208 { isStatusModalOpen && < Modal { ...statusModalProps } /> }
186209
187210 < FeedTop >
188- < Info onClick = { ( ) => nav ( `/users/ ${ feed . user . userId } ` ) } >
211+ < Info onClick = { handleUserClick } >
189212 < FeedProfileImgWrapper src = { feed . user . profilePictureUrl || defaultProfile } alt = "profile" />
190213 < StyledText $textTheme = { { style : 'body2-medium' } } color = { theme . colors . black } >
191214 { feed . user . nickname }
@@ -198,11 +221,7 @@ const Feed: React.FC<FeedProps> = ({ feed }) => {
198221 < img src = { more } />
199222 </ MoreBtn >
200223 </ FeedTop >
201- < FeedText
202- onClick = { ( ) => nav ( `/post/${ feed . postId } ` ) }
203- $textTheme = { { style : 'body2-regular' } }
204- color = { theme . colors . black }
205- >
224+ < FeedText $textTheme = { { style : 'body2-regular' } } color = { theme . colors . black } >
206225 { feed . content }
207226 </ FeedText >
208227 < FeedImgBox $src = { feed . postImages [ 0 ] . imageUrl } >
@@ -214,10 +233,16 @@ const Feed: React.FC<FeedProps> = ({ feed }) => {
214233 modules = { [ Pagination ] }
215234 className = "ootdSwiper"
216235 >
217- { feed . postImages . map ( ( postImage , index ) => (
218- < SwiperSlide key = { index } >
219- < img src = { postImage . imageUrl } alt = { `${ feed . user . nickname } 의 피드 이미지` } className = "ootd-image-small" />
220- </ SwiperSlide >
236+ { feed . postImages . map ( ( postImage ) => (
237+ < >
238+ < SwiperSlide key = { postImage . imageUrl } >
239+ < img
240+ src = { postImage . imageUrl }
241+ alt = { `${ feed . user . nickname } 의 피드 이미지` }
242+ className = "ootd-image-small"
243+ />
244+ </ SwiperSlide >
245+ </ >
221246 ) ) }
222247 </ Swiper >
223248 < ReactionWrapper >
0 commit comments