aboutsummaryrefslogtreecommitdiff
path: root/src/routes
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/api/badges/+server.ts10
-rw-r--r--src/routes/user/[user]/badges/+page.svelte22
2 files changed, 28 insertions, 4 deletions
diff --git a/src/routes/api/badges/+server.ts b/src/routes/api/badges/+server.ts
index a941f145..cbc27520 100644
--- a/src/routes/api/badges/+server.ts
+++ b/src/routes/api/badges/+server.ts
@@ -6,8 +6,10 @@ import {
getUserBadges,
addUserBadge,
type Badge,
- migrateCategory
+ migrateCategory,
+ setShadowHidden
} from '$lib/Database/userBadges';
+import authorisedJson from '$lib/Data/Static/authorised.json';
const unauthorised = new Response('Unauthorised', { status: 401 });
@@ -57,6 +59,12 @@ export const PUT = async ({ cookies, url, request }) => {
refreshToken: user['refresh_token']
});
+ if (url.searchParams.get('shadowHide'))
+ setShadowHidden(
+ Number(url.searchParams.get('shadowHide')),
+ authorisedJson.includes(identity.id)
+ );
+
if (url.searchParams.get('import') || undefined) {
await Promise.all(
(await request.json()).map(async (badge: Badge) => await addUserBadge(identity.id, badge))
diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte
index 817173bc..e3e44339 100644
--- a/src/routes/user/[user]/badges/+page.svelte
+++ b/src/routes/user/[user]/badges/+page.svelte
@@ -81,6 +81,13 @@
badges: AWCBadge[];
}
+ const getBadges = () => (badgesPromise = fetch(root(`/api/badges?id=${badger.id}`)));
+
+ const setShadowHide = () =>
+ fetch(`/api/badges?shadowHide=${badger.id}`, {
+ method: 'PUT'
+ }).then(getBadges);
+
onMount(async () => {
// socket.on('badges', (message) => (badges = message));
@@ -525,7 +532,7 @@
{#if authorised}
<div class="card">
- <button>Shadow Hide Badges</button>
+ <button on:click={setShadowHide}>Shadow Hide Badges</button>
</div>
<p />
@@ -587,6 +594,11 @@
<!-- <!-- <span style="margin: 0 0.625rem;">•</span> -->
<!-- <button on:click={() => exportBadges(groupedBadges)}>Export Badges</button> -->
+ {#if ungroupedBadges.filter((badge) => badge.shadow_hidden).length > 0}
+ <span style="margin: 0 0.625rem;">•</span>
+ <button on:click={setShadowHide}>Un-shadow Hide Badges</button>
+ {/if}
+
{#if editMode && isOwner}
{@const groups = groupedBadges
.map((group) => group[0])
@@ -795,7 +807,9 @@
source={cdn(thumbnail(badge.image))}
alternative={badge.description}
fallback={thumbnail(badge.image)}
- style={badge.hidden ? 'filter: grayscale(100%); opacity: 50%;' : ''}
+ style={badge.hidden || badge.shadow_hidden
+ ? 'filter: grayscale(100%); opacity: 50%;'
+ : ''}
/>
</a>
</Tooltip>
@@ -807,7 +821,9 @@
alternative={badge.description}
fallback={thumbnail(badge.image)}
hideOnError={preferences.hide_missing_badges}
- style={badge.hidden ? 'filter: grayscale(100%); opacity: 50%;' : ''}
+ style={badge.hidden || badge.shadow_hidden
+ ? 'filter: grayscale(100%); opacity: 50%;'
+ : ''}
/>
{/if}
{/each}