Back to Components
Desktop (Electron)
AIChatSidebar
Function Component
Chat Sidebar
Lines
8,483
File
AIChatSidebar.tsx
Last Modified
2026-10-08
Exports
default memo
Source Path
aartiq-browser/src/AIChatSidebar.tsx
Tags
ReactNode.jsCoreSecurityAISyncAutomationPDFOCRPluginmacOSWindowsLinuxFlutter
Code Analysis
React Hooks
useStateuseEffectuseCallbackuseRefuseMemouseShallow
API / Library Usage
electronAPIrouterzustand-storefirebaseframer-motionnext-navigationmarkdowntesseract-ocrsyntax-highlightlucide-icons
External Dependencies
reactframer-motionnext/navigationzustand/react/shallowtesseract.jsreact-markdownreact-syntax-highlighterreact-syntax-highlighter/dist/cjs/styles/prism/dracula
Internal Imports
./ai/markdownPlugins./ai/normalizeCitationLinks./ai/filePaths./ai/ThinkingPanel./ai/ActionChainTimeline./ai/CollapsibleOCRMessage./ai/ProcessingIndicator./ai/CollapsibleSkillMessage./ai/SkillsListMessage./ai/MessageActions./ai/ConversationHistoryPanel./ai/useAIActionSecurityManager@/lib/ai-action-security@/lib/useAppVersion./ai/AISetupGuide./LLMProviderSettings./AICommandQueue./AIChatSidebar/types./ai/DOMSearchDisplay./ai/SmartMessageContent./ai/SecureDOMReader./ai/SchedulingIntentDetector./ai/SchedulingModal./ai/McpSetupGuide./ai/MermaidDiagram./ai/FlowchartDiagram./ai/ChartDiagram./ai/YouTubePlayer./ai/ResearchExecutionCard./ai/ResearchSourceCard@/lib/AICommandParser@/lib/context-compactor@/store/useAppStore@/lib/BrowserAI@/lib/Security@/lib/AICommandOutput@/lib/SearchContextStore@/lib/SkillRegistry@/lib/ActionLogsStore./sidebar/AIFallback./sidebar/SidebarWidgets./sidebar/AISuggestionsHome./sidebar/AISuggestionBubbles./sidebar/CustomizationPanel./sidebar/useSidebarPrefs./sidebar/SidebarContext./sidebar/theme@/store/tabIntelligenceStore./sidebar/PrivacyControls./QuestionCard@/lib/aiQuestion./sidebar/AIVisualTheme./sidebar/AITabAnimation./sidebar/BackgroundNotifications@/lib/aiReasoningOptions@/lib/modelRegistry@/lib/FirebaseService@/store/selectors
Props / Types
AIChatSidebarProps
| Prop | Type | Required |
|---|---|---|
| studentMode | boolean | Yes |
| toggleStudentMode | () => void | Yes |
| isCollapsed | boolean | Yes |
| toggleCollapse | () => void | Yes |
| selectedEngine | string | Yes |
| setSelectedEngine | (engine: string) => void | Yes |
| theme | 'dark' | 'light' | 'system' | 'vibrant' | 'custom' | 'minimal' | Yes |
| setTheme | (theme: 'dark' | 'light' | 'system' | 'vibrant' | 'custom' | 'minimal') => void | Yes |
| backgroundImage | string | Yes |
| setBackgroundImage | (imageUrl: string) => void | Yes |
| backend | 'firebase' | 'mysql' | Yes |
| setBackend | (backend: 'firebase' | 'mysql') => void | Yes |
| mysqlConfig | any | Yes |
| setMysqlConfig | (config: any) => void | Yes |
| side | 'left' | 'right' | No |
| setShowSettings | (show: boolean) => void | No |
| setSettingsSection | (section: string) => void | No |
| setBrowserDisabled | (disabled: boolean) => void | No |
| showSchedulingModal | boolean | No |
| setShowSchedulingModal | (show: boolean) => void | No |
| schedulingIntent | SchedulingIntent | null | No |
| setSchedulingIntent | (intent: SchedulingIntent | null) => void | No |
| bridgeOnly | boolean | No |
| isResizing | boolean | No |
SearchResultEntry
| Prop | Type | Required |
|---|---|---|
| title | string | Yes |
| url | string | Yes |
| snippet | string | Yes |
GlowPresetScheme
| Prop | Type | Required |
|---|---|---|
| label | string | Yes |
| primary | string | Yes |
| secondary | string | Yes |
| tertiary | string | Yes |
SidebarWorkspacePreferences
| Prop | Type | Required |
|---|---|---|
| fontFamily | string | Yes |
| fontSize | number | Yes |
| soundsEnabled | boolean | Yes |
| gradientEffectsEnabled | boolean | Yes |
| glowMode | GlowMode | Yes |
| glowPreset | GlowPreset | Yes |
| glowColorPrimary | string | Yes |
| glowColorSecondary | string | Yes |
| glowColorTertiary | string | Yes |
| visibleComposerIcons | Record<ComposerIconKey, boolean> | Yes |
| modelNicknames | Record<string, string> | Yes |
AutomationReport
| Prop | Type | Required |
|---|---|---|
| totalCommands | number | Yes |
| successCount | number | Yes |
| failedCount | number | Yes |
| startTime | number | Yes |
| endTime | number | Yes |
Key Functions
parseSearchResultEntry()normalizeSearchResults()FilePathLink()SourceLink()renderMarkdownContent()StreamingMarkdownMessage()collapseRawSearchDump()sanitizeVisibleMessage()ThinkingStatus()loadSidebarWorkspacePreferences()blobToBase64()hexToRgba()sidebarShellStyle()softPanelStyle()popoverStyle()userBubbleStyle()onResize()findYouTubeLinkElement()next()messagesPayload()flushStreamText()websiteDetailNode()generateImage()logEntry()result()addImage()commonPayload()pdfMeta()formatSection()formatMessageForExport()merged()convertTagsToHTML()report()hOnline()hOffline()handleGlobalKeyDown()handleFocusAI()handleAbort()handleToggleAutonomous()options()
Related Components
Browse all components in the Component Inventory
Auto-Generated Documentation
Component metadata is auto-generated by aartiq-browser/scripts/component-scanner.js