aboutsummaryrefslogtreecommitdiff
path: root/src/lib/List
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/List')
-rw-r--r--src/lib/List/Anime/CompletedAnimeList.svelte28
-rw-r--r--src/lib/List/Anime/DueAnimeList.svelte35
2 files changed, 50 insertions, 13 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;
diff --git a/src/lib/List/Anime/DueAnimeList.svelte b/src/lib/List/Anime/DueAnimeList.svelte
index 1453baeb..8650590b 100644
--- a/src/lib/List/Anime/DueAnimeList.svelte
+++ b/src/lib/List/Anime/DueAnimeList.svelte
@@ -73,16 +73,31 @@
dueAnime = dueAnime.filter((media: Media) => media.nextAiringEpisode?.episode !== -1);
dueAnime.sort((a: Media, b: Media) => {
- if ($settings.displaySortedByDifference === true) {
- const difference = (anime: Media) =>
- (anime.nextAiringEpisode?.episode === -1
- ? 99999
- : anime.nextAiringEpisode?.episode || -1) -
- (anime.mediaListEntry || { progress: 0 }).progress;
-
- return difference(a) - difference(b);
- } else {
- return (a.nextAiringEpisode?.airingAt || 9999) - (b.nextAiringEpisode?.airingAt || 9999);
+ 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);
+ }
+
+ 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);
}
});