aboutsummaryrefslogtreecommitdiff
path: root/src/routes
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/api/preferences/+server.ts10
-rw-r--r--src/routes/user/[user]/+page.svelte14
-rw-r--r--src/routes/user/[user]/badges/+page.svelte68
3 files changed, 58 insertions, 34 deletions
diff --git a/src/routes/api/preferences/+server.ts b/src/routes/api/preferences/+server.ts
index 151af298..379f33c5 100644
--- a/src/routes/api/preferences/+server.ts
+++ b/src/routes/api/preferences/+server.ts
@@ -3,7 +3,8 @@ import {
getUserPreferences,
toggleHideMissingBadges,
setCSS,
- setBiography
+ setBiography,
+ toggleHideAWCBadges
} from '$lib/Database/userPreferences';
const unauthorised = new Response('Unauthorised', { status: 401 });
@@ -40,6 +41,13 @@ export const PUT = async ({ url, cookies, request }) => {
}
});
+ if (url.searchParams.get('toggleHideAWCBadges') !== null)
+ return Response.json(await toggleHideAWCBadges(userId), {
+ headers: {
+ 'Access-Control-Allow-Origin': 'https://due.moe'
+ }
+ });
+
if (url.searchParams.get('badgeWallCSS') !== null)
return Response.json(await setCSS(userId, await request.text()), {
headers: {
diff --git a/src/routes/user/[user]/+page.svelte b/src/routes/user/[user]/+page.svelte
index 222e044f..7049cbfd 100644
--- a/src/routes/user/[user]/+page.svelte
+++ b/src/routes/user/[user]/+page.svelte
@@ -225,6 +225,20 @@
<p />
+ <input
+ type="checkbox"
+ on:change={() => {
+ if (userData)
+ fetch(root(`/api/preferences?id=${userData.id}&toggleHideAWCBadges`), {
+ method: 'PUT'
+ });
+ }}
+ checked={preferences.hide_awc_badges}
+ />
+ {$locale().user.preferences.hideAWCBadges.title}
+
+ <p />
+
Biography
<button
diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte
index caf2019d..2b7dd65f 100644
--- a/src/routes/user/[user]/badges/+page.svelte
+++ b/src/routes/user/[user]/badges/+page.svelte
@@ -520,42 +520,44 @@
!editMode}
<div id="badges">
- {#await awcPromise then 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 !preferences.hide_awc_badges}
+ {#await awcPromise then 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>
+
+ <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}
+ />
+ </div>
+ {/each}
+ </div>
+ </details>
<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}
- />
- </div>
- {/each}
- </div>
- </details>
-
- <p />
- {/each}
- {/if}
+ {/each}
+ {/if}
+ {/await}
{/await}
- {/await}
+ {/if}
{#if ungroupedBadges === null}
<Message message="Loading badges ..." />