mirror of
https://github.com/truewhile/MeBox.git
synced 2026-10-04 20:46:37 +08:00
优化排序
This commit is contained in:
@@ -5,17 +5,8 @@ import { imageURL } from '../api/client'
|
||||
import { ExternalPlayerButton } from '../components/ExternalPlayerButton'
|
||||
import type { Media } from '../types'
|
||||
import {
|
||||
BONUS_SEASON,
|
||||
EXTRA_SEASON,
|
||||
isTheatricalFeature,
|
||||
NCED_SEASON,
|
||||
NCOP_SEASON,
|
||||
OAD_SEASON,
|
||||
OMAKE_SEASON,
|
||||
ONA_SEASON,
|
||||
OVA_SEASON,
|
||||
OVD_SEASON,
|
||||
PICTURE_DRAMA_SEASON,
|
||||
seasonLabel,
|
||||
seriesTitleFromPath,
|
||||
THEATRICAL_SEASON,
|
||||
} from '../utils/groupSeries'
|
||||
@@ -148,24 +139,6 @@ export function LibrarySeriesEpisodes({
|
||||
)
|
||||
}
|
||||
|
||||
function seasonLabel(season: number): string {
|
||||
switch (season) {
|
||||
case 0: return '特别篇'
|
||||
case THEATRICAL_SEASON: return '剧场版'
|
||||
case OVA_SEASON: return 'OVA'
|
||||
case OAD_SEASON: return 'OAD'
|
||||
case OVD_SEASON: return 'OVD'
|
||||
case ONA_SEASON: return 'ONA'
|
||||
case EXTRA_SEASON: return 'Extra'
|
||||
case BONUS_SEASON: return 'Bonus'
|
||||
case OMAKE_SEASON: return 'Omake'
|
||||
case PICTURE_DRAMA_SEASON: return 'Picture Drama'
|
||||
case NCOP_SEASON: return 'NCOP'
|
||||
case NCED_SEASON: return 'NCED'
|
||||
default: return `第 ${season} 季`
|
||||
}
|
||||
}
|
||||
|
||||
function episodeDisplayTitle(ep: Media, siblings: Media[]): string {
|
||||
let mainTitle = ''
|
||||
const epTitle = ep.episode_title?.trim()
|
||||
|
||||
@@ -2,20 +2,10 @@ import { useEffect, useMemo } from 'react'
|
||||
|
||||
import type { Media } from '../types'
|
||||
import {
|
||||
BONUS_SEASON,
|
||||
EXTRA_SEASON,
|
||||
getSeriesKey,
|
||||
isTheatricalFeature,
|
||||
NCED_SEASON,
|
||||
NCOP_SEASON,
|
||||
OAD_SEASON,
|
||||
OMAKE_SEASON,
|
||||
ONA_SEASON,
|
||||
OVA_SEASON,
|
||||
OVD_SEASON,
|
||||
PICTURE_DRAMA_SEASON,
|
||||
seasonSortOrder,
|
||||
specialSectionForMedia,
|
||||
THEATRICAL_SEASON,
|
||||
type SeriesCard,
|
||||
} from '../utils/groupSeries'
|
||||
|
||||
@@ -146,21 +136,3 @@ export function useLibrarySeriesSelection({
|
||||
clearSelectedSeries,
|
||||
}
|
||||
}
|
||||
|
||||
function seasonSortOrder(season: number): number {
|
||||
switch (season) {
|
||||
case 0: return 0
|
||||
case OVA_SEASON: return 1
|
||||
case OAD_SEASON: return 2
|
||||
case OVD_SEASON: return 3
|
||||
case ONA_SEASON: return 4
|
||||
case EXTRA_SEASON: return 5
|
||||
case BONUS_SEASON: return 6
|
||||
case OMAKE_SEASON: return 7
|
||||
case PICTURE_DRAMA_SEASON: return 8
|
||||
case NCOP_SEASON: return 9
|
||||
case NCED_SEASON: return 10
|
||||
case THEATRICAL_SEASON: return 11
|
||||
default: return 100 + season
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import { playbackAPI } from '../api/playback'
|
||||
import { confirmActionResult } from '../components/confirmAction'
|
||||
import { useEpisodeArtworkPreference } from '../hooks/useEpisodeArtworkPreference'
|
||||
import type { Media } from '../types'
|
||||
import { seasonSortOrder } from '../utils/groupSeries'
|
||||
import { mediaLibraryBackTarget } from './MediaDetailPageModel'
|
||||
|
||||
interface MediaDetailPageStateParams {
|
||||
@@ -77,7 +78,7 @@ export function useMediaDetailPageState({ id, navigate }: MediaDetailPageStatePa
|
||||
list.sort((a, b) => (a.episode_num || 0) - (b.episode_num || 0))
|
||||
}
|
||||
return Array.from(seasons.entries())
|
||||
.sort(([a], [b]) => a - b)
|
||||
.sort(([a], [b]) => seasonSortOrder(a) - seasonSortOrder(b))
|
||||
.map(([season, list]) => ({ season, episodes: list }))
|
||||
}, [episodes])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user