1+ import { useState } from 'react' ;
2+ import { useNavigate } from 'react-router-dom' ;
13import styles from './RecipientCard.module.scss' ;
24import RecentMessages from '../RecentMessages/RecentMessages' ;
35import TopReactions from '../TopReactions/TopReactions' ;
4- import { useNavigate } from 'react-router-dom' ;
56
6- //캐러셀 내부 요소 - 카드 컴포넌트
77export default function RecipientCard ( { Recipient } ) {
88 const {
99 id,
@@ -15,6 +15,13 @@ export default function RecipientCard({ Recipient }) {
1515 backgroundImageURL,
1616 } = Recipient ;
1717 const navigate = useNavigate ( ) ;
18+ const [ isDragging , setIsDragging ] = useState ( false ) ;
19+
20+ function handleCardClick ( ) {
21+ if ( ! isDragging ) {
22+ navigate ( `/post/${ id } ` ) ;
23+ }
24+ }
1825
1926 return (
2027 < div
@@ -26,24 +33,27 @@ export default function RecipientCard({ Recipient }) {
2633 }
2734 : { }
2835 }
29- onClick = { ( ) => navigate ( `/post/${ id } ` ) }
36+ onClick = { handleCardClick }
37+ onMouseDown = { ( ) => setIsDragging ( false ) }
38+ onTouchStart = { ( ) => setIsDragging ( false ) }
39+ onMouseMove = { ( ) => setIsDragging ( true ) }
40+ onTouchMove = { ( ) => setIsDragging ( true ) }
3041 >
3142 { backgroundColor === 'blue' && < div className = { styles . triangle } /> }
3243 < h3
3344 className = { `${ styles [ 'card__h3' ] } ${ backgroundImageURL ? styles . white : '' } ` }
34- > { `To. ${ name } ` } </ h3 >
35- < RecentMessages
36- messages = { recentMessages }
37- count = { messageCount }
38- > </ RecentMessages >
45+ >
46+ { `To. ${ name } ` }
47+ </ h3 >
48+ < RecentMessages messages = { recentMessages } count = { messageCount } />
3949 < div
4050 className = { `${ styles [ 'card__writer-count' ] } ${ backgroundImageURL && styles . white } ` }
4151 >
4252 < span className = { styles [ 'card__count' ] } > { messageCount } </ span >
4353 < span > 명이 작성했어요!</ span >
4454 </ div >
45- < div className = { styles [ 'card__centerline' ] } > </ div >
46- < TopReactions reactions = { topReactions } > </ TopReactions >
55+ < div className = { styles [ 'card__centerline' ] } / >
56+ < TopReactions reactions = { topReactions } / >
4757 </ div >
4858 ) ;
4959}
0 commit comments