diff --git a/packages/frontend/src/routes/admin/articles/+page.svelte b/packages/frontend/src/routes/admin/articles/+page.svelte
index 1072eca..3e38cf2 100644
--- a/packages/frontend/src/routes/admin/articles/+page.svelte
+++ b/packages/frontend/src/routes/admin/articles/+page.svelte
@@ -8,7 +8,7 @@
import { getAssetUrl } from "$lib/api";
import { Button } from "$lib/components/ui/button";
import { Input } from "$lib/components/ui/input";
- import { Select, SelectContent, SelectItem, SelectTrigger } from "$lib/components/ui/select";
+ import { FilterPills } from "$lib/components/ui/filter-pills";
import * as Dialog from "$lib/components/ui/dialog";
import type { Article } from "$lib/types";
import TimeAgo from "javascript-time-ago";
@@ -95,30 +95,30 @@
debounceSearch(searchValue);
}}
/>
-
-
+
diff --git a/packages/frontend/src/routes/admin/queues/+page.svelte b/packages/frontend/src/routes/admin/queues/+page.svelte
index 76b7f64..4eb524b 100644
--- a/packages/frontend/src/routes/admin/queues/+page.svelte
+++ b/packages/frontend/src/routes/admin/queues/+page.svelte
@@ -7,6 +7,7 @@
import { adminRetryJob, adminRemoveJob, adminPauseQueue, adminResumeQueue } from "$lib/services";
import { Button } from "$lib/components/ui/button";
import { Badge } from "$lib/components/ui/badge";
+ import { FilterPills } from "$lib/components/ui/filter-pills";
import type { Job } from "$lib/services";
import Meta from "$lib/components/meta/meta.svelte";
import Pagination from "$lib/components/pagination/pagination.svelte";
@@ -176,15 +177,13 @@
{#if data.queue}
-
- {#each STATUS_FILTERS as f (f.value ?? "all")}
-
- {/each}
+
+ ({ value: f.value ?? "all", label: f.label }))}
+ onchange={(v) => selectStatus(v === "all" ? null : v)}
+ />
diff --git a/packages/frontend/src/routes/admin/recordings/+page.svelte b/packages/frontend/src/routes/admin/recordings/+page.svelte
index 640fdba..974d820 100644
--- a/packages/frontend/src/routes/admin/recordings/+page.svelte
+++ b/packages/frontend/src/routes/admin/recordings/+page.svelte
@@ -8,6 +8,7 @@
import { Button } from "$lib/components/ui/button";
import { Input } from "$lib/components/ui/input";
import { Badge } from "$lib/components/ui/badge";
+ import { FilterPills } from "$lib/components/ui/filter-pills";
import * as Dialog from "$lib/components/ui/dialog";
import type { Recording } from "$lib/types";
import TimeAgo from "javascript-time-ago";
@@ -85,20 +86,15 @@
debounceSearch(searchValue);
}}
/>
-
-
-
-
-
+
setFilter("status", v === "all" ? null : v)}
+ />
diff --git a/packages/frontend/src/routes/admin/users/+page.svelte b/packages/frontend/src/routes/admin/users/+page.svelte
index 37d8bb7..2ee712b 100644
--- a/packages/frontend/src/routes/admin/users/+page.svelte
+++ b/packages/frontend/src/routes/admin/users/+page.svelte
@@ -10,6 +10,7 @@
import { Input } from "$lib/components/ui/input";
import { Select, SelectContent, SelectItem, SelectTrigger } from "$lib/components/ui/select";
import { Badge } from "$lib/components/ui/badge";
+ import { FilterPills } from "$lib/components/ui/filter-pills";
import * as Dialog from "$lib/components/ui/dialog";
import type { User } from "$lib/types";
import Meta from "$lib/components/meta/meta.svelte";
@@ -108,16 +109,15 @@
}}
/>
-
- {#each roles as role (role)}
-
- {/each}
-
+
setRole(v)}
+ />
diff --git a/packages/frontend/src/routes/admin/videos/+page.svelte b/packages/frontend/src/routes/admin/videos/+page.svelte
index a0f5ddf..dcaf73d 100644
--- a/packages/frontend/src/routes/admin/videos/+page.svelte
+++ b/packages/frontend/src/routes/admin/videos/+page.svelte
@@ -9,6 +9,7 @@
import { Button } from "$lib/components/ui/button";
import { Badge } from "$lib/components/ui/badge";
import { Input } from "$lib/components/ui/input";
+ import { FilterPills } from "$lib/components/ui/filter-pills";
import * as Dialog from "$lib/components/ui/dialog";
import type { Video } from "$lib/types";
import Meta from "$lib/components/meta/meta.svelte";
@@ -92,25 +93,23 @@
debounceSearch(searchValue);
}}
/>
-
-
-
-
+
+ setFilter("featured", v === "all" ? null : "true")}
+ />
+ setFilter("premium", v === "all" ? null : "true")}
+ />