The UI components are organized by their functional areas. Below is the documentation for the main components in the application.
Located in src/components/chat/
Path: src/components/chat/ChatMessageArea.tsx
Description: Renders the chat conversation area with messages and input field.
Props:
activeConversation: Current conversationisLoading: Loading statuserror: Error message if anyonSendMessage: Callback for sending messagesonStopStreaming: Callback to stop message streamingonRegenerateResponse: Callback to regenerate AI responsesonEditMessage: Callback to edit messagesisCurrentlyStreaming: Status of current streamingselectedProvider: Currently selected AI providerselectedModel: Currently selected AI model
Key Features:
- Displays conversation messages
- Handles message input and submission
- Supports stopping streaming responses
- Allows editing messages
- Supports message regeneration
- Shows web search toggle when available
- Auto-adjusts textarea height based on content
Path: src/components/chat/MarkdownContent.tsx
Description: Renders markdown content with syntax highlighting.
Located in src/components/layout/
- Main application layout
- Sidebars
- Headers and navigation
Located in src/components/ui/
Path: src/components/ui/MessageToolboxMenu.tsx
Description: Provides a toolbar for message actions like copy, edit, regenerate.
Props:
actions: Available actions for the messageonAction: Callback when an action is selected
Path: src/components/ui/ProviderIcon.tsx
Description: Renders an icon for an AI provider.
Props:
provider: Provider identifier
Located in src/components/settings/
Description: Components for managing user settings and preferences.
Key Features:
- Provider API key management
- Model selection
- Interface customization
- Web search configuration
Located in src/components/models/
Description: Components for model selection and management.
Key Features:
- Model selection interface
- Model information display
- Provider-specific settings
Located in src/components/pages/
Description: Top-level page components for routing.
Pages:
- Chat page
- Settings page
- About page
Located in src/components/core/
Description: Core application components such as:
- Application initialization
- Error boundaries
- Context providers