diff --git a/src/app/aggregate/page.tsx b/src/app/aggregate/page.tsx index b170bd2..4ea2864 100644 --- a/src/app/aggregate/page.tsx +++ b/src/app/aggregate/page.tsx @@ -113,7 +113,7 @@ function AggregatePageClient() { return ( -
+
{loading ? (
diff --git a/src/app/detail/page.tsx b/src/app/detail/page.tsx index 51b9dcf..8e6ac90 100644 --- a/src/app/detail/page.tsx +++ b/src/app/detail/page.tsx @@ -25,6 +25,8 @@ function DetailPageClient() { const [error, setError] = useState(null); const [playRecord, setPlayRecord] = useState(null); const [favorited, setFavorited] = useState(false); + // 是否倒序显示选集 + const [reverseEpisodeOrder, setReverseEpisodeOrder] = useState(false); const fallbackTitle = searchParams.get('title') || ''; const fallbackYear = searchParams.get('year') || ''; @@ -106,7 +108,7 @@ function DetailPageClient() { return ( -
+
{/* 顶部返回按钮已移入右侧信息容器 */} {loading ? (
@@ -309,9 +311,29 @@ function DetailPageClient() {
共 {detail.episodes.length} 集
+ {/* 倒序切换 */} + setReverseEpisodeOrder((prev) => !prev)} + className={`ml-4 text-sm cursor-pointer select-none transition-colors ${ + reverseEpisodeOrder + ? 'text-green-500' + : 'text-gray-400 hover:text-gray-500' + }`} + > + 倒序 +
- {detail.episodes.map((episode, idx) => ( + {(reverseEpisodeOrder + ? Array.from( + { length: detail.episodes.length }, + (_, i) => i + ).reverse() + : Array.from( + { length: detail.episodes.length }, + (_, i) => i + ) + ).map((idx) => ( - 第{idx + 1}集 + {idx + 1} ))}
diff --git a/src/app/play/page.tsx b/src/app/play/page.tsx index 5ecb854..963d19e 100644 --- a/src/app/play/page.tsx +++ b/src/app/play/page.tsx @@ -82,6 +82,7 @@ function PlayPageClient() { const [showShortcutHint, setShowShortcutHint] = useState(false); const [shortcutText, setShortcutText] = useState(''); const [shortcutDirection, setShortcutDirection] = useState(''); + const [reverseEpisodeOrder, setReverseEpisodeOrder] = useState(false); const shortcutHintTimeoutRef = useRef(null); // 换源相关状态 @@ -1435,7 +1436,22 @@ function PlayPageClient() { >
-

选集列表

+
+

+ 选集列表 +

+ {/* 倒序小字 */} + setReverseEpisodeOrder((prev) => !prev)} + className={`text-sm cursor-pointer select-none transition-colors ${ + reverseEpisodeOrder + ? 'text-green-500' + : 'text-gray-400 hover:text-gray-500' + }`} + > + 倒序 + +