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 /* ─────────────────────────────────────────────