aboutsummaryrefslogtreecommitdiff
path: root/src/lib/User/BadgeWall/AWC.svelte
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-10-06 03:49:02 -0700
committerFuwn <[email protected]>2024-10-06 03:49:02 -0700
commitded5e5bf084ce424c05066ad9c6f418672345aac (patch)
treeb620bf9098ad4bb3139a0348cdb5270f2621ac5d /src/lib/User/BadgeWall/AWC.svelte
parentfeat(badges): move badge operations to graphql (diff)
downloaddue.moe-ded5e5bf084ce424c05066ad9c6f418672345aac.tar.xz
due.moe-ded5e5bf084ce424c05066ad9c6f418672345aac.zip
feat(badges): use preferences graphql api
Diffstat (limited to 'src/lib/User/BadgeWall/AWC.svelte')
-rw-r--r--src/lib/User/BadgeWall/AWC.svelte68
1 files changed, 35 insertions, 33 deletions
diff --git a/src/lib/User/BadgeWall/AWC.svelte b/src/lib/User/BadgeWall/AWC.svelte
index c2268510..ba8a22ea 100644
--- a/src/lib/User/BadgeWall/AWC.svelte
+++ b/src/lib/User/BadgeWall/AWC.svelte
@@ -1,14 +1,14 @@
<script lang="ts">
import type { AWCBadgesGroup } from '$lib/Data/awc';
- import type { UserPreferences } from '$lib/Database/SB/User/preferences';
import { cdn, thumbnail } from '$lib/Utility/image';
+ import type { Preferences } from '../../../graphql/$types';
import FallbackBadge from './FallbackBadge.svelte';
import './badges.css';
export let awcPromise: Promise<Response>;
export let categoryFilter: string | null;
export let isOwner: boolean;
- export let preferences: UserPreferences;
+ export let preferences: Preferences;
const awcBadgesGrouped = (awcResponse: string): AWCBadgesGroup[] => {
return Array.from(
@@ -60,39 +60,41 @@
</script>
{#await awcPromise then badges}
- {#await badges.clone().text() then text}
- {@const parsedBadges = awcBadgesGrouped(text)}
+ {#if badges}
+ {#await badges.clone().text() then text}
+ {@const parsedBadges = awcBadgesGrouped(text)}
- {#if parsedBadges.length > 0}
- {#each parsedBadges as group}
- <details open={categoryFilter || isOwner ? false : true}>
- <summary>
- Anime Watching Club <span class="opaque">|</span>
- {group.group}
- </summary>
+ {#if parsedBadges.length > 0}
+ {#each parsedBadges as group}
+ <details open={categoryFilter || isOwner ? false : true}>
+ <summary>
+ Anime Watching Club <span class="opaque">|</span>
+ {group.group}
+ </summary>
- <p />
+ <p />
- <div class="badges">
- {#each group.badges as badge, index}
- <div id={`badge-${index}`}>
- <FallbackBadge
- {badge}
- source={cdn(thumbnail(badge.image))}
- alternative={badge.description}
- fallback={thumbnail(badge.image)}
- hideOnError={preferences.hide_missing_badges}
- awc
- {index}
- {preferences}
- />
- </div>
- {/each}
- </div>
- </details>
+ <div class="badges">
+ {#each group.badges as badge, index}
+ <div id={`badge-${index}`}>
+ <FallbackBadge
+ {badge}
+ source={cdn(thumbnail(badge.image))}
+ alternative={badge.description}
+ fallback={thumbnail(badge.image)}
+ hideOnError={preferences.hide_missing_badges}
+ awc
+ {index}
+ {preferences}
+ />
+ </div>
+ {/each}
+ </div>
+ </details>
- <p />
- {/each}
- {/if}
- {/await}
+ <p />
+ {/each}
+ {/if}
+ {/await}
+ {/if}
{/await}