diff --git a/app/src/App.tsx b/app/src/App.tsx
index 89afc281..a832aa48 100644
--- a/app/src/App.tsx
+++ b/app/src/App.tsx
@@ -11,6 +11,7 @@ import { Sidebar } from '@/components/Sidebar';
import { TitleBarDragRegion } from '@/components/TitleBarDragRegion';
import { Toaster } from '@/components/ui/toaster';
import { VoicesTab } from '@/components/VoicesTab/VoicesTab';
+import { TOP_SAFE_AREA_PADDING } from '@/lib/constants/ui';
import { useModelDownloadToast } from '@/lib/hooks/useModelDownloadToast';
import { MODEL_DISPLAY_NAMES, useRestoreActiveTasks } from '@/lib/hooks/useRestoreActiveTasks';
import {
@@ -20,9 +21,8 @@ import {
setupWindowCloseHandler,
startServer,
} from '@/lib/tauri';
-import { useServerStore } from '@/stores/serverStore';
-import { TOP_SAFE_AREA_PADDING } from '@/lib/constants/ui';
import { cn } from '@/lib/utils/cn';
+import { useServerStore } from '@/stores/serverStore';
// Track if server is starting to prevent duplicate starts
let serverStarting = false;
@@ -140,7 +140,12 @@ function App() {
// Show loading screen while server is starting in Tauri
if (isTauri() && !serverReady) {
return (
-
+
diff --git a/app/src/components/AudioTab/AudioTab.tsx b/app/src/components/AudioTab/AudioTab.tsx
index 059bc836..9d802467 100644
--- a/app/src/components/AudioTab/AudioTab.tsx
+++ b/app/src/components/AudioTab/AudioTab.tsx
@@ -1,5 +1,8 @@
-import { Edit, Plus, Trash2, Speaker, CheckCircle2, Check } from 'lucide-react';
+import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
+import { invoke } from '@tauri-apps/api/core';
+import { Check, CheckCircle2, Edit, Plus, Speaker, Trash2 } from 'lucide-react';
import { useState } from 'react';
+import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
import {
Dialog,
@@ -18,14 +21,11 @@ import {
SelectTrigger,
SelectValue,
} from '@/components/ui/select';
-import { Badge } from '@/components/ui/badge';
-import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import { apiClient } from '@/lib/api/client';
-import { isTauri } from '@/lib/tauri';
-import { invoke } from '@tauri-apps/api/core';
-import { usePlayerStore } from '@/stores/playerStore';
-import { cn } from '@/lib/utils/cn';
import { BOTTOM_SAFE_AREA_PADDING } from '@/lib/constants/ui';
+import { isTauri } from '@/lib/tauri';
+import { cn } from '@/lib/utils/cn';
+import { usePlayerStore } from '@/stores/playerStore';
interface AudioDevice {
id: string;
@@ -69,8 +69,7 @@ export function AudioTab() {
});
const createChannel = useMutation({
- mutationFn: (data: { name: string; device_ids: string[] }) =>
- apiClient.createChannel(data),
+ mutationFn: (data: { name: string; device_ids: string[] }) => apiClient.createChannel(data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['channels'] });
setCreateDialogOpen(false);
@@ -144,12 +143,18 @@ export function AudioTab() {
{/* Left Column - Channels */}
-
+
{allChannels.length === 0 ? (
- No audio channels yet. Create your first channel to route voices to specific devices.
+ No audio channels yet. Create your first channel to route voices to specific
+ devices.