1+ import { useState } from 'react'
2+ import { MoreHorizontal } from 'lucide-react'
13import type { PostData } from './PostDetail'
4+ import PostMenuModal from './PostMenuModal'
25
36interface PostInfoSectionProps {
47 data : PostData | null
58}
69
710export default function PostInfoSection ( { data } : PostInfoSectionProps ) {
11+ const [ isModalOpen , setIsModalOpen ] = useState ( false )
12+
813 return (
9- < div className = "flex h-full flex-col" >
10- < div className = "flex items-center gap-3 border-b border-gray-200 p-4" >
11- < img
12- src = { data ?. userImage || 'https://via.placeholder.com/32' }
13- className = "h-8 w-8 rounded-full object-cover"
14- alt = "profile"
15- />
16- < div className = "text-sm font-semibold text-black" >
17- { data ?. username || 'loading...' }
14+ < div className = "flex h-full flex-col bg-white" >
15+ < div className = "flex items-center justify-between border-b border-gray-200 p-4" >
16+ < div className = "flex items-center gap-3" >
17+ < img
18+ src = { data ?. userImage || 'https://via.placeholder.com/32' }
19+ className = "h-8 w-8 rounded-full object-cover"
20+ alt = "profile"
21+ />
22+ < div className = "flex flex-col" >
23+ < div className = "text-sm font-semibold text-black" >
24+ { data ?. username || 'loading...' }
25+ </ div >
26+ </ div >
1827 </ div >
28+
29+ < button
30+ onClick = { ( ) => setIsModalOpen ( true ) }
31+ className = "p-1 transition-opacity hover:opacity-50"
32+ >
33+ < MoreHorizontal className = "h-6 w-6 text-black" />
34+ </ button >
1935 </ div >
2036
2137 < div className = "flex-1 overflow-y-auto p-4" >
@@ -27,19 +43,23 @@ export default function PostInfoSection({ data }: PostInfoSectionProps) {
2743 />
2844 < div className = "text-sm text-black" >
2945 < span className = "mr-2 font-semibold" > { data ?. username } </ span >
30- { data ?. caption }
46+ < span className = "whitespace-pre-wrap" > { data ?. caption } </ span >
47+ < div className = "mt-2 text-xs text-gray-500" >
48+ { data ?. createdAt
49+ ? new Date ( data . createdAt ) . toLocaleDateString ( )
50+ : '' }
51+ </ div >
3152 </ div >
3253 </ div >
3354 </ div >
3455
3556 < div className = "border-t border-gray-200 p-4 text-black" >
36- < div className = "mb-1 text-sm font-semibold" >
37- 좋아요 { data ?. likeCount ?. toLocaleString ( ) || 0 } 개
38- </ div >
3957 < div className = "text-[10px] text-gray-500 uppercase" >
4058 { data ?. createdAt ? new Date ( data . createdAt ) . toLocaleDateString ( ) : '' }
4159 </ div >
4260 </ div >
61+
62+ { isModalOpen && < PostMenuModal onClose = { ( ) => setIsModalOpen ( false ) } /> }
4363 </ div >
4464 )
4565}
0 commit comments