import { useState, useEffect, useCallback } from 'react'; import { Card, Container } from '@mantine/core'; import { ChatTab } from '@/components/interface/ChatTab'; import { TerminalTab } from '@/components/interface/TerminalTab'; interface InterfaceScreenProps { activeTab?: string | null; onTabChange?: (tab: string | null) => void; } export const InterfaceScreen = ({ activeTab, onTabChange, }: InterfaceScreenProps) => { const [serverOnly, setServerOnly] = useState(false); const [serverUrl, setServerUrl] = useState(''); const [isServerReady, setIsServerReady] = useState(false); const handleServerReady = useCallback( (url: string) => { setServerUrl(url); setIsServerReady(true); if (!serverOnly && onTabChange) { onTabChange('chat'); } }, [serverOnly, onTabChange] ); useEffect(() => { const loadServerOnlySetting = async () => { try { const serverOnlyValue = await window.electronAPI.config.getServerOnly(); setServerOnly(serverOnlyValue); if (serverOnlyValue && onTabChange) { onTabChange('terminal'); } } catch (error) { console.error('Failed to load server-only setting:', error); } }; loadServerOnlySetting(); }, [onTabChange]); return ( {serverOnly ? ( ) : (
)}
); };