diff options
| author | Fuwn <[email protected]> | 2024-05-05 01:11:10 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-05-05 01:11:10 -0700 |
| commit | 9dc77cdca0c57dd749437a4784b3231433429c2a (patch) | |
| tree | a7a45b9e2ca4c7b952538c1005dfec78ecd1fa14 /src | |
| parent | feat(user): drag and drop pinned categories (diff) | |
| download | due.moe-9dc77cdca0c57dd749437a4784b3231433429c2a.tar.xz due.moe-9dc77cdca0c57dd749437a4784b3231433429c2a.zip | |
fix(badges): maintain pinned category order
Diffstat (limited to 'src')
| -rw-r--r-- | src/routes/user/[user]/badges/+page.svelte | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index fc938b21..772cfdfe 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -324,14 +324,15 @@ return Object.entries(groupedBadges) .sort((a, b) => a[1].length - b[1].length) .sort((a, b) => { - if (preferences.pinned_badge_wall_categories) { - const pinnedCategories = preferences.pinned_badge_wall_categories.split(','); + const pinnedCategories = preferences.pinned_badge_wall_categories || ([] as string[]); + const aIndex = pinnedCategories.indexOf(a[0]); + const bIndex = pinnedCategories.indexOf(b[0]); - if (pinnedCategories.includes(a[0]) && !pinnedCategories.includes(b[0])) return -1; - if (pinnedCategories.includes(b[0]) && !pinnedCategories.includes(a[0])) return 1; - } + if (aIndex === -1 && bIndex === -1) return 0; + if (aIndex === -1) return 1; + if (bIndex === -1) return -1; - return 0; + return aIndex - bIndex; }) .reduce((set: GroupedBadges, [key, value]) => { set[key] = value; |