From 300512b2cb071af376578c74925176f83dbedcfa Mon Sep 17 00:00:00 2001 From: asepharyana Date: Sun, 26 Jul 2026 15:39:41 +0700 Subject: [PATCH] refactor: clean up code formatting and improve consistency across multiple components --- biome.json | 4 +-- .../src/app/(dashboard)/analysis/page.tsx | 28 ++++++++--------- .../src/app/(dashboard)/dashboard/page.tsx | 23 ++++---------- .../frontend/src/app/(dashboard)/layout.tsx | 2 +- .../src/app/(dashboard)/media/page.tsx | 9 +----- .../src/app/(dashboard)/messages/page.tsx | 31 +++++++------------ .../src/app/(dashboard)/recordings/page.tsx | 8 ++--- .../src/app/(dashboard)/settings/page.tsx | 24 +++----------- .../src/app/(dashboard)/voice/page.tsx | 16 +++------- .../src/components/shared/guild-selector.tsx | 4 +-- services/frontend/src/lib/format.ts | 4 +-- services/frontend/src/lib/navigation.ts | 2 +- 12 files changed, 47 insertions(+), 108 deletions(-) diff --git a/biome.json b/biome.json index 6e6eee1..8671327 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/2.5.5/schema.json", + "$schema": "https://biomejs.dev/schemas/2.2.0/schema.json", "vcs": { "enabled": true, "clientKind": "git", @@ -30,7 +30,6 @@ "linter": { "enabled": true, "rules": { - "preset": "recommended", "style": { "noNonNullAssertion": "warn", "useNodejsImportProtocol": "warn" @@ -41,6 +40,7 @@ "noArrayIndexKey": "warn" }, "a11y": { + "useSemanticElements": "off", "useButtonType": "off", "noAutofocus": "off" }, diff --git a/services/frontend/src/app/(dashboard)/analysis/page.tsx b/services/frontend/src/app/(dashboard)/analysis/page.tsx index 456438a..a28d231 100644 --- a/services/frontend/src/app/(dashboard)/analysis/page.tsx +++ b/services/frontend/src/app/(dashboard)/analysis/page.tsx @@ -111,10 +111,8 @@ export default function AnalysisPage() { variant="outline" className={cn( "text-[10px] px-1.5 py-0 h-4", - msg.ai_status === "clean" && - "text-green-500", - msg.ai_status === "flagged" && - "text-red-500", + msg.ai_status === "clean" && "text-green-500", + msg.ai_status === "flagged" && "text-red-500", )} > {msg.ai_status} @@ -127,17 +125,17 @@ export default function AnalysisPage() { {msg.ai_moderation_flags && msg.ai_moderation_flags !== "[]" && (
- {safeParseJsonArray( - msg.ai_moderation_flags, - ).map((flag) => ( - - {flag} - - ))} + {safeParseJsonArray(msg.ai_moderation_flags).map( + (flag) => ( + + {flag} + + ), + )}
)} diff --git a/services/frontend/src/app/(dashboard)/dashboard/page.tsx b/services/frontend/src/app/(dashboard)/dashboard/page.tsx index d66d0c6..ea3b82b 100644 --- a/services/frontend/src/app/(dashboard)/dashboard/page.tsx +++ b/services/frontend/src/app/(dashboard)/dashboard/page.tsx @@ -15,7 +15,7 @@ import { } from "lucide-react"; import Image from "next/image"; import { useCallback, useEffect, useState } from "react"; - +import { GuildSelector } from "@/components/shared/guild-selector"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; @@ -23,7 +23,6 @@ import { Input } from "@/components/ui/input"; import { Progress } from "@/components/ui/progress"; import { Skeleton } from "@/components/ui/skeleton"; import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"; -import { GuildSelector } from "@/components/shared/guild-selector"; import { dashboardApi } from "@/lib/api"; import { formatNumber } from "@/lib/format"; import type { @@ -189,11 +188,7 @@ function StatsView() { value={stats.total_messages} icon={Hash} /> - + ) : (
- {stats.top_channels.map((ch, i) => { + {stats.top_channels.map((ch, _i) => { const maxCount = stats.top_channels[0].message_count; const pct = - maxCount > 0 - ? (ch.message_count / maxCount) * 100 - : 0; + maxCount > 0 ? (ch.message_count / maxCount) * 100 : 0; return (
- # - {ch.channel_name ?? - ch.channel_id.slice(0, 8)} + #{ch.channel_name ?? ch.channel_id.slice(0, 8)} {formatNumber(ch.message_count)} @@ -279,9 +270,7 @@ function StatsView() {
{stats.moderation_overview.pending}
-
- Pending -
+
Pending
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}

diff --git a/services/frontend/src/app/(dashboard)/settings/page.tsx b/services/frontend/src/app/(dashboard)/settings/page.tsx index 4e72139..fb98eef 100644 --- a/services/frontend/src/app/(dashboard)/settings/page.tsx +++ b/services/frontend/src/app/(dashboard)/settings/page.tsx @@ -1,12 +1,6 @@ "use client"; -import { - Moon, - Server, - Shield, - Sun, - Wifi, -} from "lucide-react"; +import { Moon, Server, Shield, Sun, Wifi } from "lucide-react"; import { useEffect, useState } from "react"; import { Badge } from "@/components/ui/badge"; @@ -85,9 +79,7 @@ export default function SettingsPage() { variant={statusConfig.variant} className="gap-1.5 px-2.5 py-1" > - + {statusConfig.label}
@@ -159,9 +151,7 @@ export default function SettingsPage() {
) : ( @@ -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() { ) : (