diff --git a/services/frontend/src/app/(dashboard)/layout.tsx b/services/frontend/src/app/(dashboard)/layout.tsx
index 45ff48f..06eaf4e 100644
--- a/services/frontend/src/app/(dashboard)/layout.tsx
+++ b/services/frontend/src/app/(dashboard)/layout.tsx
@@ -5,8 +5,8 @@ import { Suspense } from "react";
import { Header } from "@/components/layout/header";
import { MobileTabBar } from "@/components/layout/mobile-tab-bar";
import { Sidebar } from "@/components/layout/sidebar";
-import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar";
import { MascotChatbot } from "@/components/mascot/mascot-chatbot";
+import { SidebarInset, SidebarProvider } from "@/components/ui/sidebar";
import { WsProvider } from "@/lib/ws/context";
function LoadingFallback() {
diff --git a/services/frontend/src/app/(dashboard)/media/page.tsx b/services/frontend/src/app/(dashboard)/media/page.tsx
index d333efd..ac9b627 100644
--- a/services/frontend/src/app/(dashboard)/media/page.tsx
+++ b/services/frontend/src/app/(dashboard)/media/page.tsx
@@ -1,13 +1,6 @@
"use client";
-import {
- Disc3,
- Music,
- Play,
- SkipForward,
- Square,
- Volume2,
-} from "lucide-react";
+import { Disc3, Music, Play, SkipForward, Square, Volume2 } from "lucide-react";
import Image from "next/image";
import { useCallback, useEffect, useState } from "react";
diff --git a/services/frontend/src/app/(dashboard)/messages/page.tsx b/services/frontend/src/app/(dashboard)/messages/page.tsx
index b242e8d..e51f99c 100644
--- a/services/frontend/src/app/(dashboard)/messages/page.tsx
+++ b/services/frontend/src/app/(dashboard)/messages/page.tsx
@@ -12,7 +12,7 @@ import {
} from "lucide-react";
import Image from "next/image";
import { useCallback, useEffect, useState } from "react";
-
+import { GuildSelector } from "@/components/shared/guild-selector";
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
@@ -35,7 +35,6 @@ import {
} from "@/components/ui/select";
import { Skeleton } from "@/components/ui/skeleton";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
-import { GuildSelector } from "@/components/shared/guild-selector";
import { messagesApi, voiceApi } from "@/lib/api";
import { formatBytes, safeParseJsonArray } from "@/lib/format";
import type { AttachmentRecord, Channel, MessageRecord } from "@/lib/types";
@@ -244,9 +243,7 @@ export default function MessagesPage() {
-
- {error}
-
+
{error}
) : (
@@ -197,13 +187,7 @@ export default function SettingsPage() {
);
}
-function ConfigRow({
- label,
- value,
-}: {
- label: string;
- value: string;
-}) {
+function ConfigRow({ label, value }: { label: string; value: string }) {
return (
{label}
diff --git a/services/frontend/src/app/(dashboard)/voice/page.tsx b/services/frontend/src/app/(dashboard)/voice/page.tsx
index 446d617..289ffa1 100644
--- a/services/frontend/src/app/(dashboard)/voice/page.tsx
+++ b/services/frontend/src/app/(dashboard)/voice/page.tsx
@@ -31,9 +31,7 @@ export default function VoicePage() {
const [voiceStatus, setVoiceStatus] = useState
(null);
const [speakers, setSpeakers] = useState([]);
- const [guilds, setGuilds] = useState<
- Array<{ id: string; name: string }>
- >([]);
+ const [guilds, setGuilds] = useState>([]);
const [voiceChannels, setVoiceChannels] = useState<
Array<{ id: string; name: string }>
>([]);
@@ -74,9 +72,7 @@ export default function VoicePage() {
const unsubSpeaker = ws.on("voice_active_user", (user) => {
const speaker = user as ActiveSpeaker;
setSpeakers((prev) => {
- const existing = prev.findIndex(
- (s) => s.userId === speaker.userId,
- );
+ const existing = prev.findIndex((s) => s.userId === speaker.userId);
if (existing >= 0) {
const next = [...prev];
next[existing] = speaker;
@@ -224,9 +220,7 @@ export default function VoicePage() {
) : (
{voiceLoading ? (
@@ -286,9 +280,7 @@ export default function VoicePage() {
setMicActive(checked);
try {
await voiceApi.sendCommand(
- checked
- ? "voice:transmit:start"
- : "voice:transmit:stop",
+ checked ? "voice:transmit:start" : "voice:transmit:stop",
);
} catch {
setMicActive(!checked);
diff --git a/services/frontend/src/components/shared/guild-selector.tsx b/services/frontend/src/components/shared/guild-selector.tsx
index 1f46882..6a1d456 100644
--- a/services/frontend/src/components/shared/guild-selector.tsx
+++ b/services/frontend/src/components/shared/guild-selector.tsx
@@ -45,9 +45,7 @@ export function GuildSelector({
.getGuilds()
.then(setGuilds)
.catch((err) =>
- setError(
- err instanceof Error ? err.message : "Failed to load guilds",
- ),
+ setError(err instanceof Error ? err.message : "Failed to load guilds"),
)
.finally(() => setLoading(false));
}, []);
diff --git a/services/frontend/src/lib/format.ts b/services/frontend/src/lib/format.ts
index 18f1b68..1554f22 100644
--- a/services/frontend/src/lib/format.ts
+++ b/services/frontend/src/lib/format.ts
@@ -17,9 +17,7 @@ export function formatBytes(bytes: number): string {
/**
* Safely parse a JSON string into an array.
*/
-export function safeParseJsonArray(
- value: string | null | undefined,
-): string[] {
+export function safeParseJsonArray(value: string | null | undefined): string[] {
if (!value) return [];
try {
const parsed = JSON.parse(value);
diff --git a/services/frontend/src/lib/navigation.ts b/services/frontend/src/lib/navigation.ts
index a890a66..00e7d96 100644
--- a/services/frontend/src/lib/navigation.ts
+++ b/services/frontend/src/lib/navigation.ts
@@ -2,11 +2,11 @@ import {
BarChart3,
Headphones,
LayoutDashboard,
+ type LucideIcon,
MessageSquare,
Mic,
Music,
Search,
- type LucideIcon,
} from "lucide-react";
export interface NavItem {