syncfusion-react-inline-ai-assist
Syncfusion React Syncfusion React Inline AI Assist Component
Component Overview
The Inline AI Assist component provides intelligent text processing capabilities for your React applications. It enables AI-powered suggestions, content generation, and interactive prompt-response workflows with support for multiple AI service integrations.
Key Capabilities
- Multi-AI Service Integration: Connect to OpenAI, Google Gemini, Lite-LLM, and Ollama for flexible AI backend options
- Real-Time Response Streaming: Enable
enableStreamingfor progressive response updates during content generation - Command & Response Actions: Configure predefined commands for quick AI tasks and custom response actions
- Inline Toolbar: Add custom toolbar items with icons, buttons, and separators for enhanced user interactions
- Inline & Popup Modes: Display AI responses inline with existing content or in a floating popup window
- Flexible Template Customization: Customize prompt input and response display using string, function, or JSX templates
- Internationalization (i18n) & RTL: Support for multiple languages and right-to-left text direction
- Event Handling: Lifecycle events including
created,promptRequest,open, andclosefor precise control - Public Methods: Programmatic access with
addResponse(),executePrompt(),showPopup(), and more - Prompt History: Track prompt-response conversations with persistent history management
- Accessibility & Theming: Compatible with Material, Bootstrap, Fluent, and Tailwind CSS themes
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Installation via npm
- CSS theme imports (Material, Bootstrap, Fluent, Tailwind)
- Component rendering
- Custom styling with
cssClassproperty - Running your first example
Template Customization
📄 Read: references/template-customization.md
editorTemplateproperty: Customize prompt input arearesponseTemplateproperty: Customize response display- String templates, function templates, JSX.Element templates
- Rich text editor integration
- Voice input integration
- Code syntax highlighting
- Markdown rendering
Internationalization (i18n) and RTL
📄 Read: references/internationalization.md
localeproperty: Set language and regional formattingenableRtlproperty: Enable right-to-left text direction- Available locale codes and setup
- Arabic, Hebrew, Persian support
- Multi-language applications
- Browser language detection
- Custom localization strings
Positioning and Targeting
📄 Read: references/positioning-and-targeting.md
relateToproperty: Position relative to DOM elementstargetproperty: Specify where to append the componentresponseModeproperty: Inline vs Popup display modes- Practical positioning scenarios
Command Settings
📄 Read: references/command-settings.md
- Configure command items for quick actions
- Command properties: id, label, iconCss, disabled, prompt, tooltip
- Group commands with
groupByproperty - Handle
itemSelectevents - Set popup dimensions
Response Settings
📄 Read: references/response-settings.md
- Built-in response items (accept, reject)
- Adding custom response actions
- Response item properties and configuration
- Group response items with
groupBy - Handle response
itemSelectevents
Inline Toolbar Customization
📄 Read: references/inline-toolbar.md
- Configure toolbar items (buttons, separators, inputs)
- Built-in items and custom items
- Item properties: text, iconCss, type, visible, disabled, align
- Tab key navigation with
tabIndex - Custom item templates
- Toolbar positioning: Inline vs Bottom
itemClickevent handling with complete event args
Events
📄 Read: references/events.md
createdevent: Component render completepromptRequestevent: Prompt submitted by useropenevent: Popup openedcloseevent: Popup closed- Event handler patterns and examples
Methods
📄 Read: references/methods.md
addResponse(response): Add AI response to componentexecutePrompt(prompt): Execute prompt dynamicallyshowPopup(coordinates): Open the popuphidePopup(): Close the popupshowCommandPopup(): Show command actionshideCommandPopup(): Hide command actions
AI Service Integrations
📄 Read: references/ai-integrations.md
enableStreamingproperty: Real-time response streaming- OpenAI API integration with streaming
- Google Gemini AI integration with streaming
- Lite-LLM service integration
- Ollama local LLM integration with streaming
- API credential setup
- Prompt handling and response streaming
- Performance optimization and error handling
Quick Start
import { InlineAIAssistComponent } from '@syncfusion/ej2-react-interactive-chat';
import React from 'react';
function App() {
const assistRef = React.useRef(null);
const handlePromptRequest = () => {
// Simulate AI response
setTimeout(() => {
const response = 'Your AI-generated response here';
assistRef.current?.addResponse(response);
}, 1000);
};
const handleShowPopup = () => {
assistRef.current?.showPopup();
};
return (
<div>
<button onClick={handleShowPopup} className="e-btn e-primary">
Ask AI
</button>
<InlineAIAssistComponent
id="inlineAssist"
ref={assistRef}
relateTo="button"
promptRequest={handlePromptRequest}
popupWidth="500px"
/>
</div>
);
}
export default App;
Common Patterns
Pattern 1: AI-Assisted Text Editing
Combine the component with a contentEditable div to enable AI-powered suggestions while editing:
const handleResponseItemSelect = (args) => {
if (args.command.label === 'Accept') {
const lastResponse = assistRef.current.prompts?.[assistRef.current.prompts.length - 1]?.response;
if (lastResponse && editableRef.current) {
editableRef.current.innerHTML = lastResponse;
}
}
};
<InlineAIAssistComponent
responseSettings={{
itemSelect: handleResponseItemSelect
}}
/>
Pattern 2: Command-Based Actions
Set up predefined commands for common AI tasks:
const commandSettings = {
commands: [
{ id: 'summarize', label: 'Summarize', iconCss: 'e-icons e-compress', prompt: 'Summarize this text' },
{ id: 'expand', label: 'Expand', iconCss: 'e-icons e-expand', prompt: 'Expand this text' },
{ id: 'fix', label: 'Fix Grammar', iconCss: 'e-icons e-check-box', prompt: 'Fix grammar and spelling' }
]
};
<InlineAIAssistComponent commandSettings={commandSettings} />
Pattern 3: Custom Toolbar Actions
Add custom toolbar items to trigger component methods:
const handleToolbarItemClick = (args) => {
if (args.item.id === 'customAction') {
assistRef.current?.executePrompt('User-defined prompt');
}
};
const inlineToolbarSettings = {
items: [
{ id: 'customAction', text: 'Custom', iconCss: 'e-icons e-settings' }
],
itemClick: handleToolbarItemClick
};
Pattern 4: Response Display Modes
Switch between inline editing and popup responses:
// Inline mode: Response appears inline
<InlineAIAssistComponent responseMode="Inline" />
// Popup mode: Response in floating popup
<InlineAIAssistComponent responseMode="Popup" popupWidth="400px" />
Pattern 5: Lifecycle Management
Use events to coordinate component state:
const handleCreated = () => {
console.log('Component initialized');
};
const handlePromptRequest = (args) => {
console.log('Prompt submitted:', args.prompt);
};
<InlineAIAssistComponent
created={handleCreated}
promptRequest={handlePromptRequest}
open={() => console.log('Popup opened')}
close={() => console.log('Popup closed')}
/>
Key Configuration Properties
| Property | Type | Default | Purpose |
|---|---|---|---|
editorTemplate |
string | function | JSX.Element | '' | Custom prompt input template |
responseTemplate |
string | function | JSX.Element | '' | Custom response display template |
enableStreaming |
boolean | false | Enable real-time response streaming |
locale |
string | 'en-US' | Language and regional formatting |
enableRtl |
boolean | false | Enable right-to-left text direction |
enablePersistence |
boolean | false | Persist component state across reloads |
cssClass |
string | '' | Custom CSS classes for styling |
relateTo |
string | HTMLElement | - | Position component relative to element |
target |
string | HTMLElement | 'body' | Specify append target |
responseMode |
string | 'Popup' | 'Inline' or 'Popup' |
popupWidth |
string | number | '400px' | Popup width (CSS value) |
popupHeight |
string | number | 'auto' | Popup height |
zIndex |
number | 1000 | Popup z-index |
placeholder |
string | 'Ask or generate AI content..' | Prompt textarea placeholder |
prompt |
string | '' | Default prompt text |
prompts |
array | [] | Prompt-response collection |
commandSettings |
CommandSettingsModel | null | Command configuration |
responseSettings |
ResponseSettingsModel | null | Response action configuration |
inlineToolbarSettings |
InlineToolbarSettingsModel | null | Toolbar customization |
For complete examples and advanced scenarios, explore individual reference files above.
More from syncfusion/react-ui-components-skills
syncfusion-react-grid
Implements Syncfusion React Grid component for feature-rich data tables and grids. Use this when working with data display, sorting, filtering, grouping, aggregates, editing, or exporting. This skill covers grid configuration, CRUD operations, virtual scrolling or infinite scrolling, hierarchy grids, state persistence, and advanced data management features for data-intensive applications.
120syncfusion-react-rich-text-editor
Implements the Syncfusion React Rich Text Editor (RichTextEditorComponent) from ej2-react-richtexteditor, supporting HTML (WYSIWYG) and Markdown editing. Use this skill for toolbar configuration, image/video/audio insertion, paste cleanup, AI assistant integration, emoji picker, slash menu, mentions, import/export Word/PDF, form validation, and source code view in React applications.
116syncfusion-react-themes
Use this skill when users need to apply themes, customize appearance, switch dark mode, use CSS variables, configure icons, or modify visual styling for Syncfusion React components. Covers icon library, size modes, and Theme Studio integration.
114syncfusion-react-common
Common utilities and features for Syncfusion React components. Use this skill when the user needs to implement animations, drag-and-drop, state persistence, RTL support, localization, globalization, security, templates, and advanced features for Syncfusion React components.
114syncfusion-react-scheduler
Implement Syncfusion React Scheduler component for calendar, event scheduling, and appointment management. Use this when building scheduling systems, calendar applications, booking systems, or time management interfaces. Covers all scheduler views (Day, Week, Month, Timeline, Agenda, Year), data binding, resource scheduling, recurring events, CRUD operations, drag-and-drop scheduling, customization, accessibility, and advanced features.
114syncfusion-react-treegrid
Implements Syncfusion React TreeGrid for hierarchical data with sorting, filtering, editing, exporting, paging, virtual scrolling, and advanced features. Supports configuration, CRUD, aggregates, templates, state persistence, and performance optimization in React applications.
112