feat: add Meta title tags to all admin pages

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-09 17:23:35 +01:00
parent b7a29c55b3
commit 27e2ff5f66
11 changed files with 33 additions and 1 deletions

View File

@@ -12,6 +12,7 @@
import * as Dialog from "$lib/components/ui/dialog";
import type { Article } from "$lib/types";
import TimeAgo from "javascript-time-ago";
import Meta from "$lib/components/meta/meta.svelte";
const { data } = $props();
@@ -64,6 +65,8 @@
}
</script>
<Meta title={$_("admin.articles.title")} description={null} />
<div class="py-3 sm:py-6 sm:pl-6">
<div class="flex items-center justify-between mb-6 px-3 sm:px-0">
<h1 class="text-2xl font-bold">{$_("admin.articles.title")}</h1>

View File

@@ -14,6 +14,7 @@
import { getAssetUrl } from "$lib/api";
import { Select, SelectContent, SelectItem, SelectTrigger } from "$lib/components/ui/select";
import { DatePicker } from "$lib/components/ui/date-picker";
import Meta from "$lib/components/meta/meta.svelte";
const { data } = $props();
@@ -93,6 +94,8 @@
}
</script>
<Meta title={$_("admin.article_form.edit_title")} description={null} />
<div class="p-3 sm:p-6">
<div class="flex items-center gap-4 mb-6">
<Button variant="ghost" href="/admin/articles" size="sm">

View File

@@ -11,6 +11,7 @@
import { TagsInput } from "$lib/components/ui/tags-input";
import { DatePicker } from "$lib/components/ui/date-picker";
import { FileDropZone, MEGABYTE } from "$lib/components/ui/file-drop-zone";
import Meta from "$lib/components/meta/meta.svelte";
let title = $state("");
let slug = $state("");
@@ -75,6 +76,8 @@
}
</script>
<Meta title={$_("admin.article_form.new_title")} description={null} />
<div class="p-3 sm:p-6">
<div class="flex items-center gap-4 mb-6">
<Button variant="ghost" href="/admin/articles" size="sm">

View File

@@ -10,6 +10,7 @@
import { Input } from "$lib/components/ui/input";
import * as Dialog from "$lib/components/ui/dialog";
import TimeAgo from "javascript-time-ago";
import Meta from "$lib/components/meta/meta.svelte";
const { data } = $props();
const timeAgo = new TimeAgo("en");
@@ -53,6 +54,8 @@
}
</script>
<Meta title={$_("admin.comments.title")} description={null} />
<div class="py-3 sm:py-6 sm:pl-6">
<div class="flex items-center justify-between mb-6 px-3 sm:px-0">
<h1 class="text-2xl font-bold">{$_("admin.comments.title")}</h1>

View File

@@ -12,6 +12,7 @@
import { Button } from "$lib/components/ui/button";
import { Badge } from "$lib/components/ui/badge";
import type { Job } from "$lib/services";
import Meta from "$lib/components/meta/meta.svelte";
const { data } = $props();
@@ -124,6 +125,8 @@
}
</script>
<Meta title={$_("admin.queues.title")} description={null} />
<div class="py-3 sm:py-6 sm:pl-6">
<div class="flex items-center justify-between mb-6 px-3 sm:px-0">
<h1 class="text-2xl font-bold">{$_("admin.queues.title")}</h1>
@@ -196,7 +199,6 @@
<div class="flex gap-1 mb-4 px-3 sm:px-0 flex-wrap">
{#each STATUS_FILTERS as f (f.value ?? "all")}
<Button
size="sm"
variant={selectedStatus === f.value ? "default" : "outline"}
onclick={() => selectStatus(f.value)}
>

View File

@@ -11,6 +11,7 @@
import * as Dialog from "$lib/components/ui/dialog";
import type { Recording } from "$lib/types";
import TimeAgo from "javascript-time-ago";
import Meta from "$lib/components/meta/meta.svelte";
const { data } = $props();
const timeAgo = new TimeAgo("en");
@@ -63,6 +64,8 @@
}
</script>
<Meta title={$_("admin.recordings.title")} description={null} />
<div class="py-3 sm:py-6 sm:pl-6">
<div class="flex items-center justify-between mb-6 px-3 sm:px-0">
<h1 class="text-2xl font-bold">{$_("admin.recordings.title")}</h1>

View File

@@ -12,6 +12,7 @@
import { Badge } from "$lib/components/ui/badge";
import * as Dialog from "$lib/components/ui/dialog";
import type { User } from "$lib/types";
import Meta from "$lib/components/meta/meta.svelte";
const { data } = $props();
@@ -84,6 +85,8 @@
}
</script>
<Meta title={$_("admin.users.title")} description={null} />
<div class="py-3 sm:py-6 sm:pl-6">
<div class="flex items-center justify-between mb-6 px-3 sm:px-0">
<h1 class="text-2xl font-bold">{$_("admin.users.title")}</h1>

View File

@@ -14,6 +14,7 @@
import { Input } from "$lib/components/ui/input";
import { Label } from "$lib/components/ui/label";
import { FileDropZone, MEGABYTE } from "$lib/components/ui/file-drop-zone";
import Meta from "$lib/components/meta/meta.svelte";
const { data } = $props();
@@ -125,6 +126,8 @@
}
</script>
<Meta title={data.user.artist_name || data.user.email} description={null} />
<div class="p-3 sm:p-6 max-w-2xl">
<div class="flex items-center gap-4 mb-6">
<Button variant="ghost" href="/admin/users" size="sm">

View File

@@ -11,6 +11,7 @@
import { Input } from "$lib/components/ui/input";
import * as Dialog from "$lib/components/ui/dialog";
import type { Video } from "$lib/types";
import Meta from "$lib/components/meta/meta.svelte";
const { data } = $props();
@@ -61,6 +62,8 @@
}
</script>
<Meta title={$_("admin.videos.title")} description={null} />
<div class="py-3 sm:py-6 sm:pl-6">
<div class="flex items-center justify-between mb-6 px-3 sm:px-0">
<h1 class="text-2xl font-bold">{$_("admin.videos.title")}</h1>

View File

@@ -13,6 +13,7 @@
import { getAssetUrl } from "$lib/api";
import { Select, SelectContent, SelectItem, SelectTrigger } from "$lib/components/ui/select";
import { DatePicker } from "$lib/components/ui/date-picker";
import Meta from "$lib/components/meta/meta.svelte";
const { data } = $props();
@@ -102,6 +103,8 @@
}
</script>
<Meta title={$_("admin.video_form.edit_title")} description={null} />
<div class="p-3 sm:p-6 max-w-2xl">
<div class="flex items-center gap-4 mb-6">
<Button variant="ghost" href="/admin/videos" size="sm">

View File

@@ -10,6 +10,7 @@
import { TagsInput } from "$lib/components/ui/tags-input";
import { DatePicker } from "$lib/components/ui/date-picker";
import { FileDropZone, MEGABYTE } from "$lib/components/ui/file-drop-zone";
import Meta from "$lib/components/meta/meta.svelte";
const { data } = $props();
@@ -97,6 +98,8 @@
}
</script>
<Meta title={$_("admin.video_form.new_title")} description={null} />
<div class="p-3 sm:p-6 max-w-2xl">
<div class="flex items-center gap-4 mb-6">
<Button variant="ghost" href="/admin/videos" size="sm">