aboutsummaryrefslogtreecommitdiff
path: root/src/lib/List/Anime/CleanAnimeList.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/List/Anime/CleanAnimeList.svelte')
-rw-r--r--src/lib/List/Anime/CleanAnimeList.svelte18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/List/Anime/CleanAnimeList.svelte b/src/lib/List/Anime/CleanAnimeList.svelte
index 4bc55772..683e54b4 100644
--- a/src/lib/List/Anime/CleanAnimeList.svelte
+++ b/src/lib/List/Anime/CleanAnimeList.svelte
@@ -71,10 +71,15 @@ let filterKind = upcoming
? "Completed"
: "Due";
const filterKey = `${filterKind}AnimeListFilter`;
+let selectedList = "All";
-$: selectedList = disableFilter
- ? "All"
- : ($stateBin[filterKey] as string) || "All";
+$: {
+ const persistedList = disableFilter
+ ? "All"
+ : ($stateBin[filterKey] as string) || "All";
+
+ if (persistedList !== selectedList) selectedList = persistedList;
+}
$: lists = Array.from(
new Set(
@@ -90,6 +95,11 @@ $: filteredMedia =
? media
: media.filter((m) => m.mediaListEntry?.customLists?.[selectedList]);
+const updateSelectedList = () => {
+ if (!disableFilter && $stateBin[filterKey] !== selectedList)
+ $stateBin[filterKey] = selectedList;
+};
+
const clearAiringRefreshTimeout = () => {
if (airingRefreshTimeout) clearTimeout(airingRefreshTimeout);
@@ -228,7 +238,7 @@ const increment = (anime: Media, progress: number) => {
Force refresh
</button>
{:else if $settings.displayMediaListFilter && !disableFilter}
- <select bind:value={$stateBin[filterKey]}>
+ <select bind:value={selectedList} onchange={updateSelectedList}>
<option value="All">All</option>
{#each lists as list}