diff options
| author | Fuwn <[email protected]> | 2024-10-06 03:49:02 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-10-06 03:49:02 -0700 |
| commit | ded5e5bf084ce424c05066ad9c6f418672345aac (patch) | |
| tree | b620bf9098ad4bb3139a0348cdb5270f2621ac5d /src/lib/User | |
| parent | feat(badges): move badge operations to graphql (diff) | |
| download | due.moe-ded5e5bf084ce424c05066ad9c6f418672345aac.tar.xz due.moe-ded5e5bf084ce424c05066ad9c6f418672345aac.zip | |
feat(badges): use preferences graphql api
Diffstat (limited to 'src/lib/User')
| -rw-r--r-- | src/lib/User/BadgeWall/AWC.svelte | 68 | ||||
| -rw-r--r-- | src/lib/User/BadgeWall/Badges.svelte | 4 | ||||
| -rw-r--r-- | src/lib/User/BadgeWall/FallbackBadge.svelte | 4 | ||||
| -rw-r--r-- | src/lib/User/BadgeWall/badge.ts | 20 |
4 files changed, 49 insertions, 47 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} diff --git a/src/lib/User/BadgeWall/Badges.svelte b/src/lib/User/BadgeWall/Badges.svelte index 127c98c8..c4da3118 100644 --- a/src/lib/User/BadgeWall/Badges.svelte +++ b/src/lib/User/BadgeWall/Badges.svelte @@ -6,14 +6,14 @@ import FallbackImage from '$lib/Image/FallbackImage.svelte'; import { cdn, thumbnail } from '$lib/Utility/image'; import FallbackBadge from './FallbackBadge.svelte'; - import type { UserPreferences } from '$lib/Database/SB/User/preferences'; + import type { Preferences } from '../../../graphql/$types'; import type { IndexedBadge } from './badge'; export let ungroupedBadges: IndexedBadge[]; export let groupedBadges: [string, IndexedBadge[]][]; export let categoryFilter: string | null; export let editMode: boolean; - export let preferences: UserPreferences | undefined; + export let preferences: Preferences | undefined; export let selectedBadge: IndexedBadge | undefined = undefined; </script> diff --git a/src/lib/User/BadgeWall/FallbackBadge.svelte b/src/lib/User/BadgeWall/FallbackBadge.svelte index 2f0bdabd..0e690443 100644 --- a/src/lib/User/BadgeWall/FallbackBadge.svelte +++ b/src/lib/User/BadgeWall/FallbackBadge.svelte @@ -7,7 +7,7 @@ import { databaseTimeToDate } from '../../Utility/time'; import { cubicOut } from 'svelte/easing'; import { dev } from '$app/environment'; - import type { UserPreferences } from '$lib/Database/SB/User/preferences'; + import type { Preferences } from '../../../graphql/$types'; export let source: string | null | undefined; export let alternative: string | null | undefined; @@ -21,7 +21,7 @@ export let selectedBadge: Badge | null = null; export let awc = false; export let index: number | null = null; - export let preferences: UserPreferences | undefined; + export let preferences: Preferences | undefined; let replaceCount = 0; let badgeReference: HTMLImageElement; diff --git a/src/lib/User/BadgeWall/badge.ts b/src/lib/User/BadgeWall/badge.ts index 834c0362..0c15b9ca 100644 --- a/src/lib/User/BadgeWall/badge.ts +++ b/src/lib/User/BadgeWall/badge.ts @@ -1,18 +1,18 @@ -import type { Badge } from '$lib/Database/SB/User/badges'; +import type { Badge } from "../../../graphql/user/$types"; export interface IndexedBadge extends Badge { - index: number; + index: number; } export const classifyDesignerName = (designer: string) => { - let name = designer; - const anilistUser = designer.match(/https?:\/\/anilist\.co\/user\/([^/]+)\/?/); + let name = designer; + const anilistUser = designer.match(/https?:\/\/anilist\.co\/user\/([^/]+)\/?/); - if (anilistUser) { - name = `@${anilistUser[1]}`; - } else if (!designer.toLowerCase().startsWith('@')) { - name = `@${designer}`; - } + if (anilistUser) { + name = `@${anilistUser[1]}`; + } else if (!designer.toLowerCase().startsWith('@')) { + name = `@${designer}`; + } - return name; + return name; }; |