@@ -17,14 +17,12 @@ interface LinkCardProps {
1717 url : string ;
1818 createdAt : string ;
1919 } ;
20- openEdit ?: ( ) => void ;
21- openDelete ?: ( ) => void ;
2220}
2321
24- const LinkCard = ( { openEdit , openDelete , info } : LinkCardProps ) => {
22+ const LinkCard = ( { info } : LinkCardProps ) => {
2523 const [ isSubscribed , setIsSubscribed ] = useState ( info . favorite || false ) ;
2624 const [ isDropdownOpen , setIsDropdownOpen ] = useState ( false ) ;
27- const { isOpen : isModalOpen } = useModalStore ( ) ;
25+ const { isOpen, openModal } = useModalStore ( ) ;
2826 const { updateFavorite } = useLinkCardStore ( ) ;
2927
3028 const formattedDate = info . createdAt ?. slice ( 0 , 10 ) . replace ( / - / g, "." ) ;
@@ -35,8 +33,8 @@ const LinkCard = ({ openEdit, openDelete, info }: LinkCardProps) => {
3533
3634 // 모달이 열릴 때 드롭다운 닫기
3735 useEffect ( ( ) => {
38- if ( isModalOpen ) setIsDropdownOpen ( false ) ;
39- } , [ isModalOpen ] ) ;
36+ if ( isOpen ) setIsDropdownOpen ( false ) ;
37+ } , [ isOpen ] ) ;
4038
4139 // 즐겨찾기 버튼 클릭 시 호출되는 함수
4240 const handleFavoriteToggle = async ( ) => {
@@ -52,14 +50,22 @@ const LinkCard = ({ openEdit, openDelete, info }: LinkCardProps) => {
5250 // dropdown 버튼
5351 const toggleDropdown = ( ) => setIsDropdownOpen ( ( prev ) => ! prev ) ;
5452
53+ const handleModalOpen = (
54+ type : "EditLink" | "DeleteLinkModal" ,
55+ link : string ,
56+ linkId : number
57+ ) => {
58+ openModal ( type , { link, linkId } ) ;
59+ } ;
60+
5561 const dropdownItems = [
5662 {
5763 label : "수정하기" ,
58- onClick : openEdit ,
64+ onClick : ( ) => handleModalOpen ( "EditLink" , info . url , info . id ) ,
5965 } ,
6066 {
6167 label : "삭제하기" ,
62- onClick : openDelete ,
68+ onClick : ( ) => handleModalOpen ( "DeleteLinkModal" , info . url , info . id ) ,
6369 } ,
6470 ] ;
6571
0 commit comments