@@ -7,11 +7,17 @@ import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
77import IgcChatInputComponent from './chat-input.js' ;
88import IgcChatMessageListComponent from './chat-message-list.js' ;
99import { styles } from './themes/chat.base.css.js' ;
10- import type { IgcMessage , IgcMessageReaction , IgcUser } from './types.js' ;
10+ import type {
11+ IgcMessage ,
12+ IgcMessageAttachment ,
13+ IgcMessageReaction ,
14+ IgcUser ,
15+ } from './types.js' ;
1116
1217export interface IgcChatComponentEventMap {
1318 igcMessageSend : CustomEvent < IgcMessage > ;
1419 igcTypingChange : CustomEvent < IgcTypingChangeEventArgs > ;
20+ igcAttachmentClick : CustomEvent < IgcMessageAttachment > ;
1521}
1622
1723export interface IgcTypingChangeEventArgs {
@@ -86,6 +92,10 @@ export default class IgcChatComponent extends EventEmitterMixin<
8692 'message-send' ,
8793 this . handleSendMessage as EventListener
8894 ) ;
95+ this . addEventListener (
96+ 'attachment-click' ,
97+ this . handleAttachmentClick as EventListener
98+ ) ;
8999 }
90100
91101 public override disconnectedCallback ( ) {
@@ -98,6 +108,10 @@ export default class IgcChatComponent extends EventEmitterMixin<
98108 'add-reaction' ,
99109 this . handleAddReaction as EventListener
100110 ) ;
111+ this . removeEventListener (
112+ 'attachment-click' ,
113+ this . handleAttachmentClick as EventListener
114+ ) ;
101115 }
102116
103117 private handleSendMessage ( e : CustomEvent ) {
@@ -183,6 +197,11 @@ export default class IgcChatComponent extends EventEmitterMixin<
183197 } ) ;
184198 }
185199
200+ private handleAttachmentClick ( e : CustomEvent ) {
201+ const attachmentArgs = e . detail . attachment ;
202+ this . emitEvent ( 'igcAttachmentClick' , { detail : attachmentArgs } ) ;
203+ }
204+
186205 protected override render ( ) {
187206 return html `
188207 < div class ="chat-container ">
0 commit comments