From 047e15cad3a58483f75a219732d53ef3db7419cd Mon Sep 17 00:00:00 2001 From: gahusb Date: Sat, 25 Apr 2026 04:42:59 +0900 Subject: [PATCH] =?UTF-8?q?fix(travel):=20AlbumDetail=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A1=A4=20=EC=95=88=20=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=20=E2=80=94=20SwipeableView=20=EB=86=92?= =?UTF-8?q?=EC=9D=B4=20=EC=B2=B4=EC=9D=B8=20+=20PAGE=5FSIZE=2040?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SwipeableView가 fixed overlay 안에서 flex 높이를 채우지 못해 스크롤 불가 + IntersectionObserver 미동작. scoped CSS로 높이 체인 복원, PAGE_SIZE 20→40으로 증가. Co-Authored-By: Claude Opus 4.6 --- src/pages/travel/AlbumDetail.css | 22 ++++++++++++++++++++-- src/pages/travel/useTravelData.js | 2 +- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/pages/travel/AlbumDetail.css b/src/pages/travel/AlbumDetail.css index be3dca3..d552bbd 100644 --- a/src/pages/travel/AlbumDetail.css +++ b/src/pages/travel/AlbumDetail.css @@ -95,8 +95,6 @@ /* ── Body ── */ .album-detail__body { - flex: 1; - overflow-y: auto; min-height: 0; padding-bottom: env(safe-area-inset-bottom, 0); } @@ -155,6 +153,26 @@ color: var(--tv-dim, rgba(232, 221, 208, 0.25)); } +/* ── SwipeableView height chain fix ── + AlbumDetail is a fixed flex-column overlay. + SwipeableView must fill the remaining space so its panel can scroll. */ +.album-detail .swipeable-view { + flex: 1; + min-height: 0; + display: flex; + flex-direction: column; +} + +.album-detail .swipeable-view__track { + flex: 1; + min-height: 0; +} + +.album-detail .swipeable-view__panel { + height: 100%; + overflow-y: auto; +} + /* ── Mobile ── */ @media (max-width: 768px) { .album-detail__header { diff --git a/src/pages/travel/useTravelData.js b/src/pages/travel/useTravelData.js index f885a83..ff71b4c 100644 --- a/src/pages/travel/useTravelData.js +++ b/src/pages/travel/useTravelData.js @@ -3,7 +3,7 @@ import { useCallback, useEffect, useRef, useState } from 'react'; /* ───────────────────────────────────────────── Constants ───────────────────────────────────────────── */ -const PAGE_SIZE = 20; +const PAGE_SIZE = 40; const CACHE_TTL_MS = 10 * 60 * 1000; // 10 minutes /* ─────────────────────────────────────────────