|
| 1 | + |
| 2 | +# IgxChat |
| 3 | + |
| 4 | +**IgxChat** is a component that provides a chat interface, wrapping the **IgcChat** web component. |
| 5 | + |
| 6 | +A walkthrough of how to get started can be found [here](https://www.infragistics.com/products/ignite-ui-angular/angular/components/chat) |
| 7 | + |
| 8 | +# Usage |
| 9 | + |
| 10 | +```html |
| 11 | +<igx-chat |
| 12 | + [messages]="messages" |
| 13 | + [draftMessage]="draft" |
| 14 | + [options]="chatOptions" |
| 15 | + [templates]="chatTemplates" |
| 16 | + (messageCreated)="onMessageCreated($event)"> |
| 17 | +</igx-chat> |
| 18 | +``` |
| 19 | + |
| 20 | +# API Summary |
| 21 | +The following tables summarize the **igx-chat** inputs, outputs and directives. |
| 22 | + |
| 23 | +### Inputs |
| 24 | +The following inputs are available in the **igx-chat** component: |
| 25 | + |
| 26 | +| Name | Type | Description | |
| 27 | +| :--- | :--- | :--- | |
| 28 | +| `messages` | `IgcChatMessage[]` | Array of chat messages to display | |
| 29 | +| `draftMessage` | `{ text: string; attachments?: IgcChatMessageAttachment[] } \| undefined` | Draft message with text and optional attachments | |
| 30 | +| `options` | `IgxChatOptions` | Configuration options for the chat component | |
| 31 | +| `templates` | `IgxChatTemplates` | Custom templates for rendering chat elements | |
| 32 | + |
| 33 | +### Outputs |
| 34 | +The following outputs are available in the **igx-chat** component: |
| 35 | + |
| 36 | +| Name | Description | Parameters | |
| 37 | +| :--- | :--- | :--- | |
| 38 | +| `messageCreated` | Emitted when a new message is created | `IgcChatMessage` | |
| 39 | +| `messageReact` | Emitted when a user reacts to a message | `IgcChatMessageReaction` | |
| 40 | +| `attachmentClick` | Emitted when an attachment is clicked | `IgcChatMessageAttachment` | |
| 41 | +| `attachmentDrag` | Emitted when attachment drag starts | `void` | |
| 42 | +| `attachmentDrop` | Emitted when attachment is dropped | `void` | |
| 43 | +| `typingChange` | Emitted when typing indicator state changes | `boolean` | |
| 44 | +| `inputFocus` | Emitted when the input receives focus | `void` | |
| 45 | +| `inputBlur` | Emitted when the input loses focus | `void` | |
| 46 | +| `inputChange` | Emitted when the input value changes | `string` | |
| 47 | + |
| 48 | +### Directives |
| 49 | +The following directives are available for type checking in templates: |
| 50 | + |
| 51 | +| Name | Selector | Description | |
| 52 | +| :--- | :--- | :--- | |
| 53 | +| `IgxChatMessageContextDirective` | `[igxChatMessageContext]` | Provides type information for chat message template contexts | |
| 54 | +| `IgxChatAttachmentContextDirective` | `[igxChatAttachmentContext]` | Provides type information for chat attachment template contexts | |
| 55 | +| `IgxChatInputContextDirective` | `[igxChatInputContext]` | Provides type information for chat input template contexts | |
| 56 | + |
| 57 | +# Chat Extras |
| 58 | + |
| 59 | +The **chat-extras** module provides additional utilities for enhancing chat functionality. |
| 60 | + |
| 61 | +## MarkdownPipe |
| 62 | + |
| 63 | +The `MarkdownPipe` transforms markdown text into HTML, allowing you to render formatted messages in the chat. |
| 64 | + |
| 65 | +### Usage |
| 66 | + |
| 67 | +```typescript |
| 68 | +import { MarkdownPipe } from 'igniteui-angular/chat-extras'; |
| 69 | + |
| 70 | +@Component({ |
| 71 | + standalone: true, |
| 72 | + imports: [IgxChatComponent, MarkdownPipe, AsyncPipe], |
| 73 | + template: ` |
| 74 | + <igx-chat [messages]="messages" [templates]="templates"> |
| 75 | + <ng-template #renderer igxChatMessageContext let-message> |
| 76 | + <div [innerHTML]="message.text | fromMarkdown | async"></div> |
| 77 | + </ng-template> |
| 78 | + </igx-chat> |
| 79 | + ` |
| 80 | +}) |
| 81 | +``` |
| 82 | + |
| 83 | +### Supported Markdown Features |
| 84 | + |
| 85 | +The pipe supports common markdown syntax including: |
| 86 | +- **Bold** text (`**text**`) |
| 87 | +- *Italic* text (`*text*`) |
| 88 | +- Headings (`# H1`, `## H2`, etc.) |
| 89 | +- Lists (ordered and unordered) |
| 90 | +- Links (`[text](url)`) |
| 91 | +- Code blocks and inline code |
| 92 | +- Blockquotes |
| 93 | +- And more... |
0 commit comments