import { useState, useRef, useCallback } from 'react'; import { ConfigProvider, Layout, theme, Typography } from 'antd'; import { ThemeToggle } from './components/ThemeToggle'; import { InputPanel } from './components/InputPanel'; import { MindmapPanel } from './components/MindmapPanel'; import { useAttribute } from './hooks/useAttribute'; import type { MindmapD3Ref } from './components/MindmapD3'; import type { CategoryMode } from './types'; const { Header, Sider, Content } = Layout; const { Title } = Typography; interface VisualSettings { nodeSpacing: number; fontSize: number; } function App() { const [isDark, setIsDark] = useState(true); const { loading, progress, error, currentResult, history, analyze, loadFromHistory } = useAttribute(); const [visualSettings, setVisualSettings] = useState({ nodeSpacing: 32, fontSize: 14, }); const mindmapRef = useRef(null); const handleAnalyze = async ( query: string, model?: string, temperature?: number, chainCount?: number, categoryMode?: CategoryMode, customCategories?: string[], suggestedCategoryCount?: number ) => { await analyze(query, model, temperature, chainCount, categoryMode, customCategories, suggestedCategoryCount); }; const handleExpandAll = useCallback(() => { mindmapRef.current?.expandAll(); }, []); const handleCollapseAll = useCallback(() => { mindmapRef.current?.collapseAll(); }, []); return (
Attribute Agent
); } export default App;