chore: lint and format
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -21,7 +21,6 @@
|
|||||||
const seconds = totalSeconds % 60;
|
const seconds = totalSeconds % 60;
|
||||||
return `${minutes}:${seconds.toString().padStart(2, "0")}`;
|
return `${minutes}:${seconds.toString().padStart(2, "0")}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<Card
|
<Card
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
data-slot="empty-content"
|
data-slot="empty-content"
|
||||||
class={cn(
|
class={cn(
|
||||||
"flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance",
|
"flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance",
|
||||||
className
|
className,
|
||||||
)}
|
)}
|
||||||
{...restProps}
|
{...restProps}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
data-slot="empty-description"
|
data-slot="empty-description"
|
||||||
class={cn(
|
class={cn(
|
||||||
"text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4",
|
"text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4",
|
||||||
className
|
className,
|
||||||
)}
|
)}
|
||||||
{...restProps}
|
{...restProps}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
data-slot="empty"
|
data-slot="empty"
|
||||||
class={cn(
|
class={cn(
|
||||||
"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12",
|
"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12",
|
||||||
className
|
className,
|
||||||
)}
|
)}
|
||||||
{...restProps}
|
{...restProps}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -912,20 +912,14 @@ const UPDATE_RECORDING_MUTATION = gql`
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
export async function updateRecording(
|
export async function updateRecording(id: string, fields: { status?: string; public?: boolean }) {
|
||||||
id: string,
|
return loggedApiCall("updateRecording", async () => {
|
||||||
fields: { status?: string; public?: boolean },
|
|
||||||
) {
|
|
||||||
return loggedApiCall(
|
|
||||||
"updateRecording",
|
|
||||||
async () => {
|
|
||||||
const data = await getGraphQLClient().request<{ updateRecording: Recording }>(
|
const data = await getGraphQLClient().request<{ updateRecording: Recording }>(
|
||||||
UPDATE_RECORDING_MUTATION,
|
UPDATE_RECORDING_MUTATION,
|
||||||
{ id, ...fields },
|
{ id, ...fields },
|
||||||
);
|
);
|
||||||
return data.updateRecording;
|
return data.updateRecording;
|
||||||
},
|
});
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const DELETE_RECORDING_MUTATION = gql`
|
const DELETE_RECORDING_MUTATION = gql`
|
||||||
|
|||||||
@@ -68,7 +68,10 @@
|
|||||||
<!-- Sidebar (desktop only) -->
|
<!-- Sidebar (desktop only) -->
|
||||||
<aside class="hidden lg:flex w-56 shrink-0 flex-col border-r border-border/40">
|
<aside class="hidden lg:flex w-56 shrink-0 flex-col border-r border-border/40">
|
||||||
<div class="px-4 py-5 border-b border-border/40">
|
<div class="px-4 py-5 border-b border-border/40">
|
||||||
<a href="/" class="flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors">
|
<a
|
||||||
|
href="/"
|
||||||
|
class="flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors"
|
||||||
|
>
|
||||||
<span class="icon-[ri--arrow-left-line] h-3.5 w-3.5"></span>
|
<span class="icon-[ri--arrow-left-line] h-3.5 w-3.5"></span>
|
||||||
{$_("admin.nav.back_to_site")}
|
{$_("admin.nav.back_to_site")}
|
||||||
</a>
|
</a>
|
||||||
@@ -80,8 +83,11 @@
|
|||||||
{getUserInitials(displayName)}
|
{getUserInitials(displayName)}
|
||||||
</AvatarFallback>
|
</AvatarFallback>
|
||||||
</Avatar>
|
</Avatar>
|
||||||
<span class="absolute -bottom-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full bg-primary ring-2 ring-background">
|
<span
|
||||||
<span class="icon-[ri--shield-keyhole-fill] h-2.5 w-2.5 text-primary-foreground"></span>
|
class="absolute -bottom-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full bg-primary ring-2 ring-background"
|
||||||
|
>
|
||||||
|
<span class="icon-[ri--shield-keyhole-fill] h-2.5 w-2.5 text-primary-foreground"
|
||||||
|
></span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="min-w-0">
|
<div class="min-w-0">
|
||||||
|
|||||||
@@ -101,7 +101,10 @@
|
|||||||
<div class="mb-6">
|
<div class="mb-6">
|
||||||
<h1 class="text-2xl font-bold">{data.article.title}</h1>
|
<h1 class="text-2xl font-bold">{data.article.title}</h1>
|
||||||
<p class="text-xs text-muted-foreground mt-0.5">
|
<p class="text-xs text-muted-foreground mt-0.5">
|
||||||
{data.article.slug}{data.article.category ? " · " + data.article.category : ""}{data.article.author ? " · " + data.article.author.artist_name : ""}
|
{data.article.slug}{data.article.category ? " · " + data.article.category : ""}{data.article
|
||||||
|
.author
|
||||||
|
? " · " + data.article.author.artist_name
|
||||||
|
: ""}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -238,7 +241,10 @@
|
|||||||
|
|
||||||
<div class="space-y-1.5">
|
<div class="space-y-1.5">
|
||||||
<Label>{$_("admin.common.tags")}</Label>
|
<Label>{$_("admin.common.tags")}</Label>
|
||||||
<TagsInput bind:value={tags} class="bg-background/50 border-primary/20 focus:border-primary" />
|
<TagsInput
|
||||||
|
bind:value={tags}
|
||||||
|
class="bg-background/50 border-primary/20 focus:border-primary"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label class="flex items-center gap-2 cursor-pointer">
|
<label class="flex items-center gap-2 cursor-pointer">
|
||||||
|
|||||||
@@ -187,7 +187,10 @@
|
|||||||
|
|
||||||
<div class="space-y-1.5">
|
<div class="space-y-1.5">
|
||||||
<Label>{$_("admin.common.tags")}</Label>
|
<Label>{$_("admin.common.tags")}</Label>
|
||||||
<TagsInput bind:value={tags} class="bg-background/50 border-primary/20 focus:border-primary" />
|
<TagsInput
|
||||||
|
bind:value={tags}
|
||||||
|
class="bg-background/50 border-primary/20 focus:border-primary"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label class="flex items-center gap-2 cursor-pointer">
|
<label class="flex items-center gap-2 cursor-pointer">
|
||||||
|
|||||||
@@ -182,7 +182,11 @@
|
|||||||
class="h-20 w-20 rounded-full object-cover mb-2"
|
class="h-20 w-20 rounded-full object-cover mb-2"
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
<FileDropZone accept="image/*" maxFileSize={10 * MEGABYTE} onUpload={handleAvatarUpload} />
|
<FileDropZone
|
||||||
|
accept="image/*"
|
||||||
|
maxFileSize={10 * MEGABYTE}
|
||||||
|
onUpload={handleAvatarUpload}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="space-y-1.5">
|
<div class="space-y-1.5">
|
||||||
@@ -194,7 +198,11 @@
|
|||||||
class="w-full h-24 rounded object-cover mb-2"
|
class="w-full h-24 rounded object-cover mb-2"
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
<FileDropZone accept="image/*" maxFileSize={10 * MEGABYTE} onUpload={handleBannerUpload} />
|
<FileDropZone
|
||||||
|
accept="image/*"
|
||||||
|
maxFileSize={10 * MEGABYTE}
|
||||||
|
onUpload={handleBannerUpload}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="space-y-1.5">
|
<div class="space-y-1.5">
|
||||||
@@ -207,7 +215,11 @@
|
|||||||
class="w-full h-48 rounded object-cover mb-2"
|
class="w-full h-48 rounded object-cover mb-2"
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
<FileDropZone accept="image/*" maxFileSize={10 * MEGABYTE} onUpload={handlePhotoUpload2} />
|
<FileDropZone
|
||||||
|
accept="image/*"
|
||||||
|
maxFileSize={10 * MEGABYTE}
|
||||||
|
onUpload={handlePhotoUpload2}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label
|
<label
|
||||||
|
|||||||
@@ -110,7 +110,9 @@
|
|||||||
<div class="mb-6">
|
<div class="mb-6">
|
||||||
<h1 class="text-2xl font-bold">{data.video.title}</h1>
|
<h1 class="text-2xl font-bold">{data.video.title}</h1>
|
||||||
<p class="text-xs text-muted-foreground mt-0.5">
|
<p class="text-xs text-muted-foreground mt-0.5">
|
||||||
{data.video.slug}{data.video.premium ? " · premium" : ""}{data.video.featured ? " · featured" : ""}
|
{data.video.slug}{data.video.premium ? " · premium" : ""}{data.video.featured
|
||||||
|
? " · featured"
|
||||||
|
: ""}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -177,7 +179,10 @@
|
|||||||
|
|
||||||
<div class="space-y-1.5">
|
<div class="space-y-1.5">
|
||||||
<Label>{$_("admin.common.tags")}</Label>
|
<Label>{$_("admin.common.tags")}</Label>
|
||||||
<TagsInput bind:value={tags} class="bg-background/50 border-primary/20 focus:border-primary" />
|
<TagsInput
|
||||||
|
bind:value={tags}
|
||||||
|
class="bg-background/50 border-primary/20 focus:border-primary"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="space-y-1.5">
|
<div class="space-y-1.5">
|
||||||
|
|||||||
@@ -161,7 +161,10 @@
|
|||||||
|
|
||||||
<div class="space-y-1.5">
|
<div class="space-y-1.5">
|
||||||
<Label>{$_("admin.common.tags")}</Label>
|
<Label>{$_("admin.common.tags")}</Label>
|
||||||
<TagsInput bind:value={tags} class="bg-background/50 border-primary/20 focus:border-primary" />
|
<TagsInput
|
||||||
|
bind:value={tags}
|
||||||
|
class="bg-background/50 border-primary/20 focus:border-primary"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="space-y-1.5">
|
<div class="space-y-1.5">
|
||||||
|
|||||||
@@ -65,7 +65,10 @@
|
|||||||
<!-- Sidebar (desktop only) -->
|
<!-- Sidebar (desktop only) -->
|
||||||
<aside class="hidden lg:flex w-56 shrink-0 flex-col border-r border-border/40">
|
<aside class="hidden lg:flex w-56 shrink-0 flex-col border-r border-border/40">
|
||||||
<div class="px-4 py-5 border-b border-border/40">
|
<div class="px-4 py-5 border-b border-border/40">
|
||||||
<a href="/" class="flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors">
|
<a
|
||||||
|
href="/"
|
||||||
|
class="flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors"
|
||||||
|
>
|
||||||
<span class="icon-[ri--arrow-left-line] h-3.5 w-3.5"></span>
|
<span class="icon-[ri--arrow-left-line] h-3.5 w-3.5"></span>
|
||||||
{$_("me.nav.back_to_site")}
|
{$_("me.nav.back_to_site")}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -9,9 +9,24 @@
|
|||||||
const { children, data } = $props();
|
const { children, data } = $props();
|
||||||
|
|
||||||
const navLinks = $derived([
|
const navLinks = $derived([
|
||||||
{ name: $_("play.nav.play"), href: "/play/buttplug", icon: "icon-[ri--rocket-line]", exact: false },
|
{
|
||||||
{ name: $_("play.nav.recordings"), href: "/play/recordings", icon: "icon-[ri--play-list-2-line]", exact: false },
|
name: $_("play.nav.play"),
|
||||||
{ name: $_("play.nav.leaderboard"), href: "/play/leaderboard", icon: "icon-[ri--trophy-line]", exact: false },
|
href: "/play/buttplug",
|
||||||
|
icon: "icon-[ri--rocket-line]",
|
||||||
|
exact: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: $_("play.nav.recordings"),
|
||||||
|
href: "/play/recordings",
|
||||||
|
icon: "icon-[ri--play-list-2-line]",
|
||||||
|
exact: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: $_("play.nav.leaderboard"),
|
||||||
|
href: "/play/leaderboard",
|
||||||
|
icon: "icon-[ri--trophy-line]",
|
||||||
|
exact: false,
|
||||||
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
function isActive(link: { href: string; exact: boolean }) {
|
function isActive(link: { href: string; exact: boolean }) {
|
||||||
|
|||||||
Reference in New Issue
Block a user