From 03ee87d7cfb915a1182b74ecc244f79b18d28def Mon Sep 17 00:00:00 2001 From: bytedream Date: Mon, 23 Jun 2025 20:02:46 +0200 Subject: [PATCH] fix bit badge value not updating --- src/components/input/BitBadge.svelte | 31 ++++++++++++++-------------- src/pages/admin/teams.astro | 2 +- src/pages/admin/users/blocked.astro | 2 +- src/pages/admin/users/index.astro | 2 +- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/components/input/BitBadge.svelte b/src/components/input/BitBadge.svelte index 0c7abb6..4bafc7a 100644 --- a/src/components/input/BitBadge.svelte +++ b/src/components/input/BitBadge.svelte @@ -9,20 +9,17 @@ // inputs let { available, value = $bindable(), readonly }: Props = $props(); - // idk why, but this is needed to trigger loop reactivity - let reactiveValue = $derived(value); - // callbacks function onOptionSelect(e: Event) { const selected = Number((e.target as HTMLSelectElement).value); - reactiveValue |= selected; + value |= selected; (e.target as HTMLSelectElement).value = '-'; } function onBadgeRemove(flag: number) { - reactiveValue &= ~flag; + value &= ~flag; } @@ -31,20 +28,22 @@ {/if}
- {#each Object.entries(available) as [flag, badge] (flag)} - {#if (reactiveValue & Number(flag)) !== 0} -
- {#if !readonly} - - {/if} - {badge} -
- {/if} - {/each} + {#key value} + {#each Object.entries(available) as [flag, badge] (flag)} + {#if (value & Number(flag)) !== 0} +
+ {#if !readonly} + + {/if} + {badge} +
+ {/if} + {/each} + {/key}
diff --git a/src/pages/admin/teams.astro b/src/pages/admin/teams.astro index 226067f..4e917fc 100644 --- a/src/pages/admin/teams.astro +++ b/src/pages/admin/teams.astro @@ -6,7 +6,7 @@ import { Session } from '@util/session.ts'; import { Permissions } from '@util/permissions.ts'; import { BASE_PATH } from 'astro:env/server'; -const session = Session.sessionFromCookies(Astro.cookies, Permissions.Admin); +const session = Session.sessionFromCookies(Astro.cookies, Permissions.Users); if (!session) return Astro.redirect(`${BASE_PATH}/admin`); --- diff --git a/src/pages/admin/users/blocked.astro b/src/pages/admin/users/blocked.astro index b9ad919..cb69520 100644 --- a/src/pages/admin/users/blocked.astro +++ b/src/pages/admin/users/blocked.astro @@ -6,7 +6,7 @@ import { Session } from '@util/session.ts'; import { Permissions } from '@util/permissions.ts'; import { BASE_PATH } from 'astro:env/server'; -const session = Session.sessionFromCookies(Astro.cookies, Permissions.Admin); +const session = Session.sessionFromCookies(Astro.cookies, Permissions.Users); if (!session) return Astro.redirect(`${BASE_PATH}/admin`); --- diff --git a/src/pages/admin/users/index.astro b/src/pages/admin/users/index.astro index 5d3cbdd..a49b911 100644 --- a/src/pages/admin/users/index.astro +++ b/src/pages/admin/users/index.astro @@ -6,7 +6,7 @@ import { Session } from '@util/session.ts'; import { Permissions } from '@util/permissions.ts'; import { BASE_PATH } from 'astro:env/server'; -const session = Session.sessionFromCookies(Astro.cookies, Permissions.Admin); +const session = Session.sessionFromCookies(Astro.cookies, Permissions.Users); if (!session) return Astro.redirect(`${BASE_PATH}/admin`); ---