Skip to main content

Dashboard Components

The web dashboard organizes React components by feature area under apps/web/src/components/. Each subwork groups components that serve a specific part of the application.

Component Areas

AI Components (components/ai/)

Chat interface components for the AI conversation feature:

ComponentPurpose
ChatInterface.tsxMain chat UI with message list and input
ChatProvider.tsxContext provider managing AI chat state and streaming

The chat interface connects to the streaming endpoint at /api/ai-conversations/chat/stream and provides real-time AI responses within the dashboard.

Auth Components (components/auth/)

ComponentPurpose
social-login.tsxOAuth social login buttons (GitHub, Google)

Social login components render provider-specific buttons and handle the OAuth redirect flow through the backend.

Dashboard Components (components/dashboard/)

Top-level dashboard layout and home page components:

ComponentPurpose
DashboardHeader.tsxTop navigation bar with user menu
DashboardSidebar.tsxLeft sidebar navigation with route links
HelpDrawer.tsxSlide-out help panel
NotificationDropdown.tsxNotification bell and dropdown list
RecentActivity.tsxActivity feed on the home page
StatsOverview.tsxDashboard statistics cards (works, items, runs)

Work Components (components/works/)

Components for listing, creating, and managing works:

ComponentPurpose
WorkList.tsxPaginated work grid/list view
WorkCard.tsxIndividual work card with status and actions
WorkAICreator.tsxAI-powered work creation wizard
WorkManualForm.tsxManual work creation form
WorkImportForm.tsxImport work from external source
OrganizationSelector.tsxGitHub organization picker
RepositorySelector.tsxRepository picker for imports
RepositoryOwnerCard.tsxDisplay card for repo owner info

Detail Subworks

The works/detail/ subwork contains components for the work detail view, organized by tab:

SubworkPurpose
detail/overview/Work overview tab
detail/items/Items browser and editor
detail/generator/AI generation controls
detail/schedule/Schedule configuration
detail/deploy/Deployment settings
detail/members/Team member management
detail/settings/Work settings form
detail/plugins/Per-work plugin toggles
detail/comparisons/Comparison page list
detail/history/Generation run history
detail/shared/Shared components used across tabs

Key context and layout components:

  • WorkDetailContext.tsx -- React context providing the current work entity and user permissions to all child tabs.
  • WorkLayoutClient.tsx -- Client-side layout wrapper for the work detail view.
  • WorkHeader.tsx -- Header with work name, status badge, and action buttons.
  • WorkTabs.tsx -- Tab navigation for switching between detail views.
  • WorkStatusCard.tsx -- Status indicator card showing generation state.
  • PrUpdateInfo.tsx -- Banner showing pending community PR information.

Plugin Components (components/plugins/)

Marketplace and configuration UI for the plugin system:

ComponentPurpose
PluginGrid.tsxGrid layout for plugin cards
PluginCard.tsxIndividual plugin card with icon and status
PluginsList.tsxList view alternative for plugins
PluginSearchBar.tsxSearch and filter input for plugins
PluginCategoryFilter.tsxCategory filter chips (ai-provider, search, etc.)
PluginEnablePanel.tsxPanel for enabling/disabling a plugin
PluginSettings.tsxPlugin settings form container
PluginSettingsFormFields.tsxDynamic form fields generated from JSON Schema
PluginDisableWarning.tsxConfirmation dialog for disabling plugins
PluginReadme.tsxRendered plugin README content
PluginIcon.tsxPlugin icon with fallback
form/Reusable form field components for plugin settings

Settings Components (components/settings/)

Account and global settings:

ComponentPurpose
ProfileSettings.tsxUser profile form (name, email, avatar)
SecuritySettings.tsxPassword change and two-factor settings
DangerZone.tsxAccount deletion confirmation
GitProviderConnections.tsxManage connected Git providers (GitHub OAuth)
PluginOAuthConnection.tsxOAuth connection status for plugin providers
PluginSettingsInline.tsxInline plugin settings within the settings page
SettingsNavItem.tsxNavigation item for the settings sidebar

UI Components (components/ui/)

Shared primitive components based on shadcn/ui:

ComponentPurpose
button.tsxButton with variants (default, destructive, outline, ghost)
input.tsxText input field
textarea.tsxMulti-line text area
auto-resize-textarea.tsxTextarea that grows with content
select.tsxDropdown select
checkbox.tsxCheckbox input
switch.tsxToggle switch
dialog.tsxModal dialog
dropdown-menu.tsxDropdown menu with items
tooltip.tsxHover tooltip
collapsible-card.tsxExpandable/collapsible card section
show-datetime.tsxFormatted date/time display
top-loader.tsxPage transition loading bar

Other Components

WorkPurpose
common/Shared layout helpers and utility components
footer/Page footer
layout/Layout wrappers for different page types
logos/Logo components with light/dark mode support
theme-toggle.tsxDark/light theme toggle button