--- title: CopilotChatSuggestionView description: "Clickable suggestion chips component" --- `CopilotChatSuggestionView` is the default component used by [CopilotChat](/reference/copilot-chat) to render clickable suggestion chips. These chips provide quick actions that users can click to send predefined messages. ## What is CopilotChatSuggestionView? The CopilotChatSuggestionView component: - Renders a list of clickable suggestion chips - Supports loading states for individual suggestions - Handles click events to trigger message sending - Displays suggestions in a flexible wrapped layout - Built on the [slot system](/reference/slot-system) for deep customization ## Component Architecture CopilotChatSuggestionView provides slots for customizing the container and individual chips: ```mermaid graph LR SV[CopilotChatSuggestionView] --> container SV --> suggestion ``` ### Slot Descriptions | Slot | Description | | ------------ | --------------------------------------------------- | | `container` | The outer container that holds all suggestion chips | | `suggestion` | Individual suggestion chip (pill button) | ## Basic Usage Customize suggestions through the `suggestionView` prop on [CopilotChat](/reference/copilot-chat): ```tsx ``` ## How Suggestions Work Suggestions are managed through the `useSuggestions` hook, which: 1. Receives suggestions from the AI agent 2. Displays them as clickable chips 3. Triggers message sending when clicked 4. Shows loading states during processing You don't need to manage suggestions manually - CopilotChat handles this automatically. ## Slot Customization CopilotChatSuggestionView uses the [slot system](/reference/slot-system). Each slot accepts four types of values: 1. **Tailwind class string** - Add or override CSS classes 2. **Props object** - Pass additional props to the default component 3. **Custom component** - Replace the component entirely 4. **Nested sub-slots** - Drill down to customize child components ### Container Customization Style the suggestions container: ```tsx ``` ### Suggestion Chip Customization Style individual suggestion chips: ```tsx ``` Or with a props object: ```tsx ``` ## Replacing the Component To completely replace the suggestion view with your own component: ```tsx import { CopilotChatSuggestionView } from "@copilotkit/react-core"; function CustomSuggestionView({ suggestions, onSelectSuggestion, ...props }) { return (
); } ; ``` ### Using the Render Function For full layout control, use the children render function: ```tsx function CustomSuggestionView(props) { return ( {({ suggestions, onSelectSuggestion }) => (
{suggestions.map((suggestion, index) => ( ))}
)}
); } ; ``` The render function receives: | Property | Type | Description | | -------------------- | ----------------------------- | ---------------------------------------- | | `container` | `ReactElement` | The bound container element | | `suggestion` | `ReactElement` | A sample bound suggestion chip | | `suggestions` | `Suggestion[]` | Array of suggestion objects | | `onSelectSuggestion` | `(suggestion, index) => void` | Callback when suggestion is clicked | | `loadingIndexes` | `ReadonlyArray` | Indexes of suggestions currently loading | ## Loading States Individual suggestions can show loading states when clicked: ```tsx // Suggestions automatically show loading states when: // 1. The suggestion is clicked and processing // 2. The suggestion has isLoading: true in its data ``` The loading state is indicated by a spinner or visual feedback on the chip. ## Examples ### Pill-Style Suggestions ```tsx ``` ### Card-Style Suggestions ```tsx ``` ### Colorful Gradient Chips ```tsx ``` ### Minimal Style ```tsx ``` ### Centered Suggestions ```tsx ``` ## Related - [CopilotChat](/reference/copilot-chat) - Parent component that uses CopilotChatSuggestionView - [CopilotChatWelcomeScreen](/reference/copilot-chat-welcome-screen) - Welcome screen that displays suggestions - [Slot System](/reference/slot-system) - Deep dive into slot customization