|
1 | 1 | "use client"; |
2 | 2 |
|
3 | | -import { useState, useEffect } from "react"; |
| 3 | +import { useState, useMemo } from "react"; |
4 | 4 | import Image from "next/image"; |
5 | 5 | import { Heart, ChevronRight } from "lucide-react"; |
6 | 6 | import { Performance, Session } from "@/types/performance"; |
@@ -30,10 +30,17 @@ export default function Yes24PerformanceDetail({ |
30 | 30 | const [likeCount, setLikeCount] = useState(436); |
31 | 31 | const [selectedDate, setSelectedDate] = useState<Date | undefined>(undefined); |
32 | 32 | const [selectedSession, setSelectedSession] = useState<string | null>(null); |
33 | | - const [isTicketingOpen, setIsTicketingOpen] = useState(false); |
34 | 33 |
|
35 | 34 | useResetAuthToken(); |
36 | 35 |
|
| 36 | + // 티켓팅 오픈 여부 계산 (페이지 로드 시 한 번만 계산, 이후 새로고침 필요) |
| 37 | + const isTicketingOpen = useMemo(() => { |
| 38 | + if (!performance.ticketing_date) return false; |
| 39 | + const now = new Date().getTime(); |
| 40 | + const ticketingTime = new Date(performance.ticketing_date).getTime(); |
| 41 | + return now >= ticketingTime; |
| 42 | + }, [performance.ticketing_date]); |
| 43 | + |
37 | 44 | // 날짜 선택 핸들러 - 날짜 변경 시 선택된 회차 초기화 |
38 | 45 | const handleDateSelect = (date: Date | undefined) => { |
39 | 46 | setSelectedDate(date); |
@@ -61,22 +68,6 @@ export default function Yes24PerformanceDetail({ |
61 | 68 | } |
62 | 69 | } |
63 | 70 |
|
64 | | - // 티켓팅 오픈 여부 체크 |
65 | | - useEffect(() => { |
66 | | - if (!performance.ticketing_date) return; |
67 | | - |
68 | | - const checkTicketingStatus = () => { |
69 | | - const now = new Date().getTime(); |
70 | | - const ticketingTime = new Date(performance.ticketing_date).getTime(); |
71 | | - setIsTicketingOpen(now >= ticketingTime); |
72 | | - }; |
73 | | - |
74 | | - checkTicketingStatus(); |
75 | | - const timer = setInterval(checkTicketingStatus, 1000); |
76 | | - |
77 | | - return () => clearInterval(timer); |
78 | | - }, [performance.ticketing_date]); |
79 | | - |
80 | 71 | const handleLike = () => { |
81 | 72 | setLiked(!liked); |
82 | 73 | setLikeCount(liked ? likeCount - 1 : likeCount + 1); |
|
0 commit comments