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`);
---