From cea60e70dbd584d219f3d533b916cdee1b56f0c8 Mon Sep 17 00:00:00 2001 From: hbyang Date: Fri, 21 Aug 2026 10:45:15 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=EC=98=81=EC=83=81=20=EC=A2=85?= =?UTF-8?q?=EB=A3=8C=203=EC=B4=88=20=EC=A0=84=20=EA=B3=B5=EC=8B=9D=20?= =?UTF-8?q?=ED=99=88=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=A7=81=ED=81=AC=20?= =?UTF-8?q?=EC=98=A4=EB=B2=84=EB=A0=88=EC=9D=B4=20=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - VideoDetailItem/VideoListItem에 official_site_url 필드 추가 - 플레이어 onTimeUpdate로 잔여 3초 감지, 링크 카드 오버레이 노출 - official_site_url이 null이면 오버레이 미렌더링 Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01DKTAqpFj8pbWzgvq7MRDHk --- src/components/VideoDetailContent.tsx | 54 ++++++++++++++++----- src/locales/en.json | 1 + src/locales/ko.json | 1 + src/styles/contents-social.css | 69 +++++++++++++++++++++++++-- src/types/api.ts | 2 + 5 files changed, 110 insertions(+), 17 deletions(-) diff --git a/src/components/VideoDetailContent.tsx b/src/components/VideoDetailContent.tsx index 5085b2e..ef36916 100644 --- a/src/components/VideoDetailContent.tsx +++ b/src/components/VideoDetailContent.tsx @@ -33,6 +33,7 @@ const VideoDetailContent: React.FC = ({ videoId, isModa const [copied, setCopied] = useState(false); const [isLandscape, setIsLandscape] = useState(false); + const [showSiteOverlay, setShowSiteOverlay] = useState(false); const [showLoginModal, setShowLoginModal] = useState(false); const [comments, setComments] = useState([]); @@ -68,6 +69,7 @@ const VideoDetailContent: React.FC = ({ videoId, isModa const fetchVideo = async () => { setLoading(true); setError(null); + setShowSiteOverlay(false); try { const data = await getVideoById(videoId); setVideo(data); @@ -221,18 +223,46 @@ const VideoDetailContent: React.FC = ({ videoId, isModa

{error}

) : video ? (
-