11import { useMemo , useState } from "react" ;
2+ import { useNavigate } from "react-router-dom" ;
23import { FaAngleLeft , FaAngleRight , FaAnglesRight } from "react-icons/fa6" ;
34import styles from "@styles/MonthSideView.module.css" ;
45import CardView from "./CardView" ;
@@ -12,16 +13,17 @@ import { useFilter } from "@/contexts/FilterContext";
1213import { useUserData } from "@/contexts/UserDataContext" ;
1314import { useDayEvents } from "@/contexts/useCalendarEvents" ;
1415import { FilterButton } from "@/widgets/Toolbar" ;
16+ import Modal from "@/widgets/Modal" ;
1517
1618const MonthSideView = ( {
1719 day,
1820 onClose,
19- onLoginPrompt,
2021} : {
2122 day : Date ;
2223 onClose : ( ) => void ;
23- onLoginPrompt : ( ) => void ;
2424} ) => {
25+ const navigate = useNavigate ( ) ;
26+ const [ isLoginModalOpen , setIsLoginModalOpen ] = useState ( false ) ;
2527 const { setShowDetail, setClickedEventId } = useDetail ( ) ;
2628 const [ date , setDate ] = useState < Date > ( day ) ;
2729 const { globalCategory, globalOrg, globalStatus, setFilterSheetShowing } = useFilter ( ) ;
@@ -76,6 +78,16 @@ const MonthSideView = ({
7678
7779 return (
7880 < div className = { styles . mainWrapper } >
81+ { isLoginModalOpen && (
82+ < Modal
83+ content = "로그인 이후 이용해주세요"
84+ leftText = "로그인"
85+ rightText = "닫기"
86+ onLeftClick = { ( ) => navigate ( "/" ) }
87+ onRightClick = { ( ) => setIsLoginModalOpen ( false ) }
88+ onClose = { ( ) => setIsLoginModalOpen ( false ) }
89+ />
90+ ) }
7991 < button type = "button" className = { styles . foldBtn } onClick = { onClose } >
8092 < FaAnglesRight
8193 width = { 24 }
@@ -112,7 +124,7 @@ const MonthSideView = ({
112124 onKeyDown = { ( e ) => e . key === "Enter" && handleDetailClick ( event . id ) }
113125 className = { styles . cardButton }
114126 >
115- < CardView key = { event . id } event = { event } onLoginPrompt = { onLoginPrompt } />
127+ < CardView key = { event . id } event = { event } onLoginPrompt = { ( ) => setIsLoginModalOpen ( true ) } />
116128 </ div >
117129 ) ) }
118130 </ div >
0 commit comments