Skip to content

Commit 5db417a

Browse files
committed
fix: Yes24 상세 페이지 자동 새로고침 제거
- setInterval 타이머 제거 - useMemo로 페이지 로드 시에만 티켓팅 오픈 여부 계산 - 이후 업데이트는 사용자 수동 새로고침 필요
1 parent c812904 commit 5db417a

File tree

1 file changed

+9
-18
lines changed

1 file changed

+9
-18
lines changed

frontend/app/yes24/_source/components/Yes24PerformanceDetail.tsx

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use client";
22

3-
import { useState, useEffect } from "react";
3+
import { useState, useMemo } from "react";
44
import Image from "next/image";
55
import { Heart, ChevronRight } from "lucide-react";
66
import { Performance, Session } from "@/types/performance";
@@ -30,10 +30,17 @@ export default function Yes24PerformanceDetail({
3030
const [likeCount, setLikeCount] = useState(436);
3131
const [selectedDate, setSelectedDate] = useState<Date | undefined>(undefined);
3232
const [selectedSession, setSelectedSession] = useState<string | null>(null);
33-
const [isTicketingOpen, setIsTicketingOpen] = useState(false);
3433

3534
useResetAuthToken();
3635

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+
3744
// 날짜 선택 핸들러 - 날짜 변경 시 선택된 회차 초기화
3845
const handleDateSelect = (date: Date | undefined) => {
3946
setSelectedDate(date);
@@ -61,22 +68,6 @@ export default function Yes24PerformanceDetail({
6168
}
6269
}
6370

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-
8071
const handleLike = () => {
8172
setLiked(!liked);
8273
setLikeCount(liked ? likeCount - 1 : likeCount + 1);

0 commit comments

Comments
 (0)