From 0dd54267d9d8075768a538751cbbba2aaab02dff Mon Sep 17 00:00:00 2001 From: twoimo <32544727+twoimo@users.noreply.github.com> Date: Thu, 24 Sep 2026 17:25:48 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=8B=A4=EC=A0=9C=20=ED=81=AC=EB=A1=AC?= =?UTF-8?q?=EC=9D=B4=20=EC=98=AC=EB=9D=BC=EC=98=A4=EB=A9=B4=20=EC=8A=A4?= =?UTF-8?q?=EC=BC=88=EB=A0=88=ED=86=A4=EC=9D=84=20=EC=88=A8=EA=B8=B0?= =?UTF-8?q?=EA=B3=A0=20=EB=B0=B0=EB=84=88=20=EC=8B=A4=ED=8C=A8=EB=A5=BC=20?= =?UTF-8?q?=EA=B3=A0=EC=A0=95=20=EC=BD=94=EB=93=9C=EB=A1=9C=20=EB=B0=98?= =?UTF-8?q?=ED=99=98=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 접힌 패널이 지도를 가리지 않게 하고, 서비스 롤 설정 실패도 banner_read_failed로 막는다. Co-authored-by: Cursor --- apps/web/app/api/admin/banners/route.ts | 19 ++++++++++++------- apps/web/app/home-app-globals.css | 4 ++++ .../components/home/home-control-panel.tsx | 6 ++++++ 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/apps/web/app/api/admin/banners/route.ts b/apps/web/app/api/admin/banners/route.ts index be01e6ffce..4cf1f7515e 100644 --- a/apps/web/app/api/admin/banners/route.ts +++ b/apps/web/app/api/admin/banners/route.ts @@ -25,15 +25,20 @@ export async function GET() { const auth = await requireAdmin(); if (!auth.ok) return auth.response; - const supabase = createSupabaseServiceRoleClient(); - const { data, error } = await supabase - .from("ad_banners") - .select(AD_BANNER_SELECT) - .order("priority", { ascending: false }); + try { + const supabase = createSupabaseServiceRoleClient(); + const { data, error } = await supabase + .from("ad_banners") + .select(AD_BANNER_SELECT) + .order("priority", { ascending: false }); - if (error) { + if (error) { + return NextResponse.json({ code: "banner_read_failed" }, { status: 500 }); + } + + return NextResponse.json({ banners: data ?? [] }); + } catch { return NextResponse.json({ code: "banner_read_failed" }, { status: 500 }); } - return NextResponse.json({ banners: data ?? [] }); } diff --git a/apps/web/app/home-app-globals.css b/apps/web/app/home-app-globals.css index 049b654924..fe59eb3e6c 100644 --- a/apps/web/app/home-app-globals.css +++ b/apps/web/app/home-app-globals.css @@ -20,6 +20,10 @@ @source "../lib/naver-map-overlay-position-helpers.ts"; @source "../lib/naver-map-overlay-timings.ts"; +html[data-home-chrome-ready="true"] [data-home-static-skeleton] { + display: none; +} + @media (max-width: 1279px) { html[data-mobile-search-open] .mobile-map-status-badge { display: none; diff --git a/apps/web/components/home/home-control-panel.tsx b/apps/web/components/home/home-control-panel.tsx index 9aeb798378..7b34c15b75 100644 --- a/apps/web/components/home/home-control-panel.tsx +++ b/apps/web/components/home/home-control-panel.tsx @@ -152,6 +152,12 @@ function HomeControlPanelComponent({ activeRightPanel = null, selectedAnnouncement = null, }: HomeControlPanelProps) { + useEffect(() => { + document.documentElement.dataset.homeChromeReady = "true"; + return () => { + delete document.documentElement.dataset.homeChromeReady; + }; + }, []); const { isMobileOrTablet } = useDeviceType(); const shouldRenderMobile = isMobileOrTablet || ( typeof window !== 'undefined' && window.innerWidth <= BREAKPOINTS.tabletMax