diff options
Diffstat (limited to 'frontend')
| -rw-r--r-- | frontend/src/components/LeftSidebar.tsx | 9 | ||||
| -rw-r--r-- | frontend/src/components/Sidebar.tsx | 11 | ||||
| -rw-r--r-- | frontend/src/components/nodes/LLMNode.tsx | 6 | ||||
| -rw-r--r-- | frontend/src/store/flowStore.ts | 16 |
4 files changed, 20 insertions, 22 deletions
diff --git a/frontend/src/components/LeftSidebar.tsx b/frontend/src/components/LeftSidebar.tsx index d929dcc..4a0ac7b 100644 --- a/frontend/src/components/LeftSidebar.tsx +++ b/frontend/src/components/LeftSidebar.tsx @@ -17,7 +17,6 @@ const LeftSidebar: React.FC<LeftSidebarProps> = ({ isOpen, onToggle }) => { const { archivedNodes, removeFromArchive, - createNodeFromArchive, theme, files, uploadingFileIds, @@ -37,7 +36,6 @@ const LeftSidebar: React.FC<LeftSidebarProps> = ({ isOpen, onToggle }) => { renameProjectItem, deleteProjectItem, setCurrentBlueprintPath, - serializeBlueprint, clearBlueprint } = useFlowStore(); const { user, logout } = useAuthStore(); @@ -50,8 +48,11 @@ const LeftSidebar: React.FC<LeftSidebarProps> = ({ isOpen, onToggle }) => { const [dragItem, setDragItem] = useState<FSItem | null>(null); const [showSaveStatus, setShowSaveStatus] = useState(false); const [expanded, setExpanded] = useState<Set<string>>(() => new Set(['.'])); - const [fileProvider, setFileProvider] = useState<'local' | 'openai' | 'google'>('local'); - const [openaiPurpose, setOpenaiPurpose] = useState<string>('user_data'); + const [fileProvider, _setFileProvider] = useState<'local' | 'openai' | 'google'>('local'); + const [openaiPurpose, _setOpenaiPurpose] = useState<string>('user_data'); + // Suppress unused warnings - these may be used in future + void _setFileProvider; + void _setOpenaiPurpose; const [fileSearch, setFileSearch] = useState(''); // User Settings Modal State diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx index 61a5f02..e517693 100644 --- a/frontend/src/components/Sidebar.tsx +++ b/frontend/src/components/Sidebar.tsx @@ -2,9 +2,10 @@ import React, { useState, useEffect, useRef, useMemo } from 'react'; import { useReactFlow } from 'reactflow'; import useFlowStore from '../store/flowStore'; import { useAuthStore } from '../store/authStore'; -import type { NodeData, Trace, Message, MergedTrace, MergeStrategy, FileMeta } from '../store/flowStore'; +import type { NodeData, Trace, Message, MergedTrace, MergeStrategy } from '../store/flowStore'; +import type { Edge } from 'reactflow'; import ReactMarkdown from 'react-markdown'; -import { Play, Settings, Info, Save, ChevronLeft, ChevronRight, Maximize2, Edit3, X, Check, FileText, MessageCircle, Send, GripVertical, GitMerge, Trash2, AlertCircle, Loader2, Navigation, Upload, Search, Link, LogOut } from 'lucide-react'; +import { Play, Settings, Info, ChevronLeft, ChevronRight, Maximize2, Edit3, X, Check, FileText, MessageCircle, Send, GripVertical, GitMerge, Trash2, AlertCircle, Loader2, Navigation, Upload, Search, Link } from 'lucide-react'; interface SidebarProps { isOpen: boolean; @@ -15,12 +16,12 @@ interface SidebarProps { const Sidebar: React.FC<SidebarProps> = ({ isOpen, onToggle, onInteract }) => { const { nodes, edges, selectedNodeId, updateNodeData, getActiveContext, addNode, setSelectedNode, - isTraceComplete, createQuickChatNode, theme, + isTraceComplete, theme, createMergedTrace, updateMergedTrace, deleteMergedTrace, computeMergedMessages, files, uploadFile, refreshFiles, addFileScope, removeFileScope, currentBlueprintPath, saveCurrentBlueprint } = useFlowStore(); - const { getAuthHeader, user, logout } = useAuthStore(); + const { getAuthHeader } = useAuthStore(); const { setCenter, getViewport } = useReactFlow(); const isDark = theme === 'dark'; const [activeTab, setActiveTab] = useState<'interact' | 'settings' | 'debug'>('interact'); @@ -529,7 +530,7 @@ const Sidebar: React.FC<SidebarProps> = ({ isOpen, onToggle, onInteract }) => { }; // Check if a trace has downstream nodes from the current selected node - const traceHasDownstream = (trace: Trace): boolean => { + const traceHasDownstream = (_trace: Trace): boolean => { if (!selectedNode) return false; // Find edges going out from selectedNode that are part of this trace diff --git a/frontend/src/components/nodes/LLMNode.tsx b/frontend/src/components/nodes/LLMNode.tsx index d2e1293..8cbf0e9 100644 --- a/frontend/src/components/nodes/LLMNode.tsx +++ b/frontend/src/components/nodes/LLMNode.tsx @@ -1,11 +1,11 @@ import { useEffect, useState } from 'react'; import { Handle, Position, type NodeProps, useUpdateNodeInternals, useEdges } from 'reactflow'; -import type { NodeData, MergedTrace } from '../../store/flowStore'; +import type { NodeData, MergedTrace, Trace } from '../../store/flowStore'; import { Loader2, MessageSquare } from 'lucide-react'; import useFlowStore from '../../store/flowStore'; const LLMNode = ({ id, data, selected }: NodeProps<NodeData>) => { - const { theme, nodes } = useFlowStore(); + const { theme } = useFlowStore(); const [showPreview, setShowPreview] = useState(false); const updateNodeInternals = useUpdateNodeInternals(); const edges = useEdges(); @@ -241,7 +241,7 @@ const LLMNode = ({ id, data, selected }: NodeProps<NodeData>) => { let backgroundStyle = trace.color; if (trace.isMerged && trace.mergedColors && trace.mergedColors.length > 0) { const colors = trace.mergedColors; - const gradientStops = colors.map((color, idx) => + const gradientStops = colors.map((color: string, idx: number) => `${color} ${(idx / colors.length) * 100}%, ${color} ${((idx + 1) / colors.length) * 100}%` ).join(', '); backgroundStyle = `linear-gradient(45deg, ${gradientStops})`; diff --git a/frontend/src/store/flowStore.ts b/frontend/src/store/flowStore.ts index 3492ffe..3d4930b 100644 --- a/frontend/src/store/flowStore.ts +++ b/frontend/src/store/flowStore.ts @@ -10,9 +10,7 @@ import { type NodeChange, type OnNodesChange, type OnEdgesChange, - type OnConnect, - getIncomers, - getOutgoers + type OnConnect } from 'reactflow'; // --- Project / Blueprint types --- @@ -392,7 +390,7 @@ const useFlowStore = create<FlowState>((set, get) => { const nodesPerLevel: Map<number, number> = new Map(); while (queue.length > 0) { - const { id, level, index } = queue.shift()!; + const { id, level } = queue.shift()!; // Count nodes at this level const currentCount = nodesPerLevel.get(level) || 0; @@ -569,7 +567,6 @@ const useFlowStore = create<FlowState>((set, get) => { const newInputHandles: Map<string, number> = new Map(); for (let i = 0; i < pathEdges.length; i++) { - const originalEdge = pathEdges[i]; const fromNodeId = pathNodes[i]; const toNodeId = pathNodes[i + 1]; @@ -1362,7 +1359,7 @@ const useFlowStore = create<FlowState>((set, get) => { } // Check that ALL nodes in the trace have both user and assistant messages - for (const [nodeId, data] of nodeMessages) { + for (const [_nodeId, data] of nodeMessages) { if (!data.hasUser || !data.hasAssistant) { return false; // This node is incomplete } @@ -1382,13 +1379,13 @@ const useFlowStore = create<FlowState>((set, get) => { // Create a new node for quick chat, with proper connection createQuickChatNode: ( fromNodeId: string, - trace: Trace | null, + _trace: Trace | null, userPrompt: string, response: string, model: string, config: Partial<NodeData> ) => { - const { nodes, edges, addNode, updateNodeData } = get(); + const { nodes, addNode, updateNodeData } = get(); const fromNode = nodes.find(n => n.id === fromNodeId); if (!fromNode) return ''; @@ -1997,7 +1994,6 @@ const useFlowStore = create<FlowState>((set, get) => { // Also track Edge updates (Color AND SourceHandle) const updatedEdges = [...edges]; - let edgesChanged = false; // Iterate sortedNodes.forEach(nodeId => { @@ -2140,7 +2136,7 @@ const useFlowStore = create<FlowState>((set, get) => { colors: finalColors } }; - edgesChanged = true; + // Edge was updated } } } |
