aboutsummaryrefslogtreecommitdiff
path: root/src/lib/List/Anime/CompletedAnimeList.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/List/Anime/CompletedAnimeList.svelte')
-rw-r--r--src/lib/List/Anime/CompletedAnimeList.svelte28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/lib/List/Anime/CompletedAnimeList.svelte b/src/lib/List/Anime/CompletedAnimeList.svelte
index 76ec7207..1fa775c4 100644
--- a/src/lib/List/Anime/CompletedAnimeList.svelte
+++ b/src/lib/List/Anime/CompletedAnimeList.svelte
@@ -85,10 +85,32 @@
);
outdatedCompletedAnime.sort((a: Media, b: Media) => {
- const difference = (anime: Media) =>
- anime.episodes - (anime.mediaListEntry || { progress: 0 }).progress;
+ switch ($settings.displayAnimeSort) {
+ case 'difference': {
+ const difference = (anime: Media) =>
+ (anime.nextAiringEpisode?.episode === -1
+ ? 99999
+ : anime.nextAiringEpisode?.episode || -1) -
+ (anime.mediaListEntry || { progress: 0 }).progress;
- return difference(a) - difference(b);
+ return difference(a) - difference(b);
+ }
+
+ case 'end_date':
+ return (
+ new Date(a.endDate.year, a.endDate.month - 1).getTime() -
+ new Date(b.endDate.year, b.endDate.month - 1).getTime()
+ );
+
+ case 'start_date':
+ return (
+ new Date(a.startDate.year, a.startDate.month - 1).getTime() -
+ new Date(b.startDate.year, b.startDate.month - 1).getTime()
+ );
+
+ case 'time_remaining':
+ return (a.nextAiringEpisode?.airingAt || 9999) - (b.nextAiringEpisode?.airingAt || 9999);
+ }
});
if (!endTime) endTime = performance.now() - startTime;