1- import { useEffect } from "react" ;
1+ import { useEffect , useState } from "react" ;
22import { useNavigate } from "react-router-dom" ;
33import styles from "@styles/CalendarView.module.css" ;
44import MonthSideView from "@widgets/Month/MonthSideView/MonthSideView" ;
@@ -7,13 +7,16 @@ import BottomNav from "@/widgets/BottomNav";
77import { useEvents } from "@/contexts/EventContext" ;
88import { useDetail } from "@/contexts/DetailContext" ;
99import { FilterSheet } from "@/widgets/FilterSheet/FilterSheet" ;
10+ import Modal from "@/widgets/Modal" ;
1011
1112const MOBILE_MAX_WIDTH = 576 ;
1213
1314const MainDay = ( ) => {
1415 const navigate = useNavigate ( ) ;
1516 const { dayDate } = useEvents ( ) ;
1617 const { showDetail, clickedEventId } = useDetail ( ) ;
18+ const [ isLoginModalOpen , setIsLoginModalOpen ] = useState ( false ) ;
19+
1720
1821 useEffect ( ( ) => {
1922 const checkWidth = ( ) => {
@@ -33,7 +36,7 @@ const MainDay = () => {
3336 return (
3437 < div className = { `${ styles . container } ${ styles . mainDay } ` } >
3538 < div className = { styles . calendarContainer } >
36- < MonthSideView day = { dayDate } onClose = { handleClose } />
39+ < MonthSideView day = { dayDate } onClose = { handleClose } onLoginPrompt = { ( ) => setIsLoginModalOpen ( true ) } />
3740 { showDetail && clickedEventId !== undefined && (
3841 < div className = { `${ styles . sidePanel } ${ styles . detailPanel } ` } >
3942 < DetailView eventId = { clickedEventId } />
@@ -42,6 +45,17 @@ const MainDay = () => {
4245 </ div >
4346 < FilterSheet />
4447 { ! showDetail && < BottomNav /> }
48+ { isLoginModalOpen && (
49+ < Modal
50+ content = "로그인 이후 이용해주세요"
51+ leftText = "로그인"
52+ rightText = "닫기"
53+ onLeftClick = { ( ) => navigate ( "/" ) }
54+ onRightClick = { ( ) => setIsLoginModalOpen ( false ) }
55+ onClose = { ( ) => setIsLoginModalOpen ( false ) }
56+ />
57+ ) }
58+
4559 </ div >
4660 ) ;
4761} ;
0 commit comments