Skip to content

Commit 909a9ec

Browse files
Add messageEdited and messagedDeleted events to ChatAdapter. Update the unread message badge when a message is deleted. (#3971)
1 parent 6cb7fed commit 909a9ec

14 files changed

Lines changed: 250 additions & 14 deletions
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"type": "patch",
3+
"area": "fix",
4+
"workstream": "",
5+
"comment": "Update the unread messages count on the CallWithChatComposite when a message is deleted.",
6+
"packageName": "@azure/communication-react",
7+
"email": "2684369+JamesBurnside@users.noreply.github.com",
8+
"dependentChangeType": "patch"
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"type": "patch",
3+
"area": "improvement",
4+
"workstream": "",
5+
"comment": "Add messageEdited and messageDeleted events to the ChatAdapter",
6+
"packageName": "@azure/communication-react",
7+
"email": "2684369+JamesBurnside@users.noreply.github.com",
8+
"dependentChangeType": "patch"
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"type": "patch",
3+
"area": "fix",
4+
"workstream": "",
5+
"comment": "Update the unread messages count on the CallWithChatComposite when a message is deleted.",
6+
"packageName": "@azure/communication-react",
7+
"email": "2684369+JamesBurnside@users.noreply.github.com",
8+
"dependentChangeType": "patch"
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"type": "patch",
3+
"area": "improvement",
4+
"workstream": "",
5+
"comment": "Add messageEdited and messageDeleted events to the ChatAdapter",
6+
"packageName": "@azure/communication-react",
7+
"email": "2684369+JamesBurnside@users.noreply.github.com",
8+
"dependentChangeType": "patch"
9+
}

packages/communication-react/review/beta/communication-react.api.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1071,6 +1071,10 @@ export interface CallWithChatAdapterSubscriptions {
10711071
// (undocumented)
10721072
off(event: 'messageReceived', listener: MessageReceivedListener): void;
10731073
// (undocumented)
1074+
off(event: 'messageEdited', listener: MessageEditedListener): void;
1075+
// (undocumented)
1076+
off(event: 'messageDeleted', listener: MessageDeletedListener): void;
1077+
// (undocumented)
10741078
off(event: 'messageSent', listener: MessageSentListener): void;
10751079
// (undocumented)
10761080
off(event: 'messageRead', listener: MessageReadListener): void;
@@ -1115,6 +1119,10 @@ export interface CallWithChatAdapterSubscriptions {
11151119
// (undocumented)
11161120
on(event: 'messageReceived', listener: MessageReceivedListener): void;
11171121
// (undocumented)
1122+
on(event: 'messageEdited', listener: MessageEditedListener): void;
1123+
// (undocumented)
1124+
on(event: 'messageDeleted', listener: MessageDeletedListener): void;
1125+
// (undocumented)
11181126
on(event: 'messageSent', listener: MessageSentListener): void;
11191127
// (undocumented)
11201128
on(event: 'messageRead', listener: MessageReadListener): void;
@@ -1323,7 +1331,7 @@ export interface CallWithChatControlOptions extends CommonCallControlOptions {
13231331
}
13241332

13251333
// @public
1326-
export type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | /* @conditional-compile-remove(close-captions) */ 'isCaptionsActiveChanged' | /* @conditional-compile-remove(close-captions) */ 'captionsReceived' | /* @conditional-compile-remove(close-captions) */ 'isCaptionLanguageChanged' | /* @conditional-compile-remove(close-captions) */ 'isSpokenLanguageChanged' | /* @conditional-compile-remove(capabilities) */ 'capabilitiesChanged' | 'messageReceived' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
1334+
export type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | /* @conditional-compile-remove(close-captions) */ 'isCaptionsActiveChanged' | /* @conditional-compile-remove(close-captions) */ 'captionsReceived' | /* @conditional-compile-remove(close-captions) */ 'isCaptionLanguageChanged' | /* @conditional-compile-remove(close-captions) */ 'isSpokenLanguageChanged' | /* @conditional-compile-remove(capabilities) */ 'capabilitiesChanged' | 'messageReceived' | 'messageEdited' | 'messageDeleted' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
13271335

13281336
// @beta
13291337
export const CameraAndMicrophoneSitePermissions: (props: CameraAndMicrophoneSitePermissionsProps) => JSX.Element;
@@ -1543,13 +1551,17 @@ export type ChatAdapterState = ChatAdapterUiState & ChatCompositeClientState;
15431551
// @public
15441552
export interface ChatAdapterSubscribers {
15451553
off(event: 'messageReceived', listener: MessageReceivedListener): void;
1554+
off(event: 'messageEdited', listener: MessageEditedListener): void;
1555+
off(event: 'messageDeleted', listener: MessageDeletedListener): void;
15461556
off(event: 'messageSent', listener: MessageSentListener): void;
15471557
off(event: 'messageRead', listener: MessageReadListener): void;
15481558
off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;
15491559
off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;
15501560
off(event: 'topicChanged', listener: TopicChangedListener): void;
15511561
off(event: 'error', listener: (e: AdapterError) => void): void;
15521562
on(event: 'messageReceived', listener: MessageReceivedListener): void;
1563+
on(event: 'messageEdited', listener: MessageEditedListener): void;
1564+
on(event: 'messageDeleted', listener: MessageDeletedListener): void;
15531565
on(event: 'messageSent', listener: MessageSentListener): void;
15541566
on(event: 'messageRead', listener: MessageReadListener): void;
15551567
on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;
@@ -3123,6 +3135,12 @@ export interface MessageCommon {
31233135
// @public
31243136
export type MessageContentType = 'text' | 'html' | 'richtext/html' | 'unknown';
31253137

3138+
// @public
3139+
export type MessageDeletedListener = MessageReceivedListener;
3140+
3141+
// @public
3142+
export type MessageEditedListener = MessageReceivedListener;
3143+
31263144
// @public
31273145
export type MessageProps = {
31283146
message: Message;

packages/communication-react/review/stable/communication-react.api.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -805,6 +805,10 @@ export interface CallWithChatAdapterSubscriptions {
805805
// (undocumented)
806806
off(event: 'messageReceived', listener: MessageReceivedListener): void;
807807
// (undocumented)
808+
off(event: 'messageEdited', listener: MessageEditedListener): void;
809+
// (undocumented)
810+
off(event: 'messageDeleted', listener: MessageDeletedListener): void;
811+
// (undocumented)
808812
off(event: 'messageSent', listener: MessageSentListener): void;
809813
// (undocumented)
810814
off(event: 'messageRead', listener: MessageReadListener): void;
@@ -849,6 +853,10 @@ export interface CallWithChatAdapterSubscriptions {
849853
// (undocumented)
850854
on(event: 'messageReceived', listener: MessageReceivedListener): void;
851855
// (undocumented)
856+
on(event: 'messageEdited', listener: MessageEditedListener): void;
857+
// (undocumented)
858+
on(event: 'messageDeleted', listener: MessageDeletedListener): void;
859+
// (undocumented)
852860
on(event: 'messageSent', listener: MessageSentListener): void;
853861
// (undocumented)
854862
on(event: 'messageRead', listener: MessageReadListener): void;
@@ -1012,7 +1020,7 @@ export interface CallWithChatControlOptions extends CommonCallControlOptions {
10121020
}
10131021

10141022
// @public
1015-
export type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | /* @conditional-compile-remove(close-captions) */ 'isCaptionsActiveChanged' | /* @conditional-compile-remove(close-captions) */ 'captionsReceived' | /* @conditional-compile-remove(close-captions) */ 'isCaptionLanguageChanged' | /* @conditional-compile-remove(close-captions) */ 'isSpokenLanguageChanged' | /* @conditional-compile-remove(capabilities) */ 'capabilitiesChanged' | 'messageReceived' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
1023+
export type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | /* @conditional-compile-remove(close-captions) */ 'isCaptionsActiveChanged' | /* @conditional-compile-remove(close-captions) */ 'captionsReceived' | /* @conditional-compile-remove(close-captions) */ 'isCaptionLanguageChanged' | /* @conditional-compile-remove(close-captions) */ 'isSpokenLanguageChanged' | /* @conditional-compile-remove(capabilities) */ 'capabilitiesChanged' | 'messageReceived' | 'messageEdited' | 'messageDeleted' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
10161024

10171025
// @public
10181026
export const CameraButton: (props: CameraButtonProps) => JSX.Element;
@@ -1206,13 +1214,17 @@ export type ChatAdapterState = ChatAdapterUiState & ChatCompositeClientState;
12061214
// @public
12071215
export interface ChatAdapterSubscribers {
12081216
off(event: 'messageReceived', listener: MessageReceivedListener): void;
1217+
off(event: 'messageEdited', listener: MessageEditedListener): void;
1218+
off(event: 'messageDeleted', listener: MessageDeletedListener): void;
12091219
off(event: 'messageSent', listener: MessageSentListener): void;
12101220
off(event: 'messageRead', listener: MessageReadListener): void;
12111221
off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;
12121222
off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;
12131223
off(event: 'topicChanged', listener: TopicChangedListener): void;
12141224
off(event: 'error', listener: (e: AdapterError) => void): void;
12151225
on(event: 'messageReceived', listener: MessageReceivedListener): void;
1226+
on(event: 'messageEdited', listener: MessageEditedListener): void;
1227+
on(event: 'messageDeleted', listener: MessageDeletedListener): void;
12161228
on(event: 'messageSent', listener: MessageSentListener): void;
12171229
on(event: 'messageRead', listener: MessageReadListener): void;
12181230
on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;
@@ -2460,6 +2472,12 @@ export interface MessageCommon {
24602472
// @public
24612473
export type MessageContentType = 'text' | 'html' | 'richtext/html' | 'unknown';
24622474

2475+
// @public
2476+
export type MessageDeletedListener = MessageReceivedListener;
2477+
2478+
// @public
2479+
export type MessageEditedListener = MessageReceivedListener;
2480+
24632481
// @public
24642482
export type MessageProps = {
24652483
message: Message;

packages/react-composites/review/beta/react-composites.api.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -772,6 +772,10 @@ export interface CallWithChatAdapterSubscriptions {
772772
// (undocumented)
773773
off(event: 'messageReceived', listener: MessageReceivedListener): void;
774774
// (undocumented)
775+
off(event: 'messageEdited', listener: MessageEditedListener): void;
776+
// (undocumented)
777+
off(event: 'messageDeleted', listener: MessageDeletedListener): void;
778+
// (undocumented)
775779
off(event: 'messageSent', listener: MessageSentListener): void;
776780
// (undocumented)
777781
off(event: 'messageRead', listener: MessageReadListener): void;
@@ -816,6 +820,10 @@ export interface CallWithChatAdapterSubscriptions {
816820
// (undocumented)
817821
on(event: 'messageReceived', listener: MessageReceivedListener): void;
818822
// (undocumented)
823+
on(event: 'messageEdited', listener: MessageEditedListener): void;
824+
// (undocumented)
825+
on(event: 'messageDeleted', listener: MessageDeletedListener): void;
826+
// (undocumented)
819827
on(event: 'messageSent', listener: MessageSentListener): void;
820828
// (undocumented)
821829
on(event: 'messageRead', listener: MessageReadListener): void;
@@ -1024,7 +1032,7 @@ export interface CallWithChatControlOptions extends CommonCallControlOptions {
10241032
}
10251033

10261034
// @public
1027-
export type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | /* @conditional-compile-remove(close-captions) */ 'isCaptionsActiveChanged' | /* @conditional-compile-remove(close-captions) */ 'captionsReceived' | /* @conditional-compile-remove(close-captions) */ 'isCaptionLanguageChanged' | /* @conditional-compile-remove(close-captions) */ 'isSpokenLanguageChanged' | /* @conditional-compile-remove(capabilities) */ 'capabilitiesChanged' | 'messageReceived' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
1035+
export type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | /* @conditional-compile-remove(close-captions) */ 'isCaptionsActiveChanged' | /* @conditional-compile-remove(close-captions) */ 'captionsReceived' | /* @conditional-compile-remove(close-captions) */ 'isCaptionLanguageChanged' | /* @conditional-compile-remove(close-captions) */ 'isSpokenLanguageChanged' | /* @conditional-compile-remove(capabilities) */ 'capabilitiesChanged' | 'messageReceived' | 'messageEdited' | 'messageDeleted' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
10281036

10291037
// @public
10301038
export type CapabilitiesChangedListener = (data: CapabilitiesChangeInfo) => void;
@@ -1059,13 +1067,17 @@ export type ChatAdapterState = ChatAdapterUiState & ChatCompositeClientState;
10591067
// @public
10601068
export interface ChatAdapterSubscribers {
10611069
off(event: 'messageReceived', listener: MessageReceivedListener): void;
1070+
off(event: 'messageEdited', listener: MessageEditedListener): void;
1071+
off(event: 'messageDeleted', listener: MessageDeletedListener): void;
10621072
off(event: 'messageSent', listener: MessageSentListener): void;
10631073
off(event: 'messageRead', listener: MessageReadListener): void;
10641074
off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;
10651075
off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;
10661076
off(event: 'topicChanged', listener: TopicChangedListener): void;
10671077
off(event: 'error', listener: (e: AdapterError) => void): void;
10681078
on(event: 'messageReceived', listener: MessageReceivedListener): void;
1079+
on(event: 'messageEdited', listener: MessageEditedListener): void;
1080+
on(event: 'messageDeleted', listener: MessageDeletedListener): void;
10691081
on(event: 'messageSent', listener: MessageSentListener): void;
10701082
on(event: 'messageRead', listener: MessageReadListener): void;
10711083
on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;
@@ -1660,6 +1672,12 @@ export type MediaDiagnosticChangedEvent = MediaDiagnosticChangedEventArgs & {
16601672
type: 'media';
16611673
};
16621674

1675+
// @public
1676+
export type MessageDeletedListener = MessageReceivedListener;
1677+
1678+
// @public
1679+
export type MessageEditedListener = MessageReceivedListener;
1680+
16631681
// @public
16641682
export type MessageReadListener = (event: {
16651683
message: ChatMessage;

packages/react-composites/review/stable/react-composites.api.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,10 @@ export interface CallWithChatAdapterSubscriptions {
605605
// (undocumented)
606606
off(event: 'messageReceived', listener: MessageReceivedListener): void;
607607
// (undocumented)
608+
off(event: 'messageEdited', listener: MessageEditedListener): void;
609+
// (undocumented)
610+
off(event: 'messageDeleted', listener: MessageDeletedListener): void;
611+
// (undocumented)
608612
off(event: 'messageSent', listener: MessageSentListener): void;
609613
// (undocumented)
610614
off(event: 'messageRead', listener: MessageReadListener): void;
@@ -649,6 +653,10 @@ export interface CallWithChatAdapterSubscriptions {
649653
// (undocumented)
650654
on(event: 'messageReceived', listener: MessageReceivedListener): void;
651655
// (undocumented)
656+
on(event: 'messageEdited', listener: MessageEditedListener): void;
657+
// (undocumented)
658+
on(event: 'messageDeleted', listener: MessageDeletedListener): void;
659+
// (undocumented)
652660
on(event: 'messageSent', listener: MessageSentListener): void;
653661
// (undocumented)
654662
on(event: 'messageRead', listener: MessageReadListener): void;
@@ -812,7 +820,7 @@ export interface CallWithChatControlOptions extends CommonCallControlOptions {
812820
}
813821

814822
// @public
815-
export type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | /* @conditional-compile-remove(close-captions) */ 'isCaptionsActiveChanged' | /* @conditional-compile-remove(close-captions) */ 'captionsReceived' | /* @conditional-compile-remove(close-captions) */ 'isCaptionLanguageChanged' | /* @conditional-compile-remove(close-captions) */ 'isSpokenLanguageChanged' | /* @conditional-compile-remove(capabilities) */ 'capabilitiesChanged' | 'messageReceived' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
823+
export type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | /* @conditional-compile-remove(close-captions) */ 'isCaptionsActiveChanged' | /* @conditional-compile-remove(close-captions) */ 'captionsReceived' | /* @conditional-compile-remove(close-captions) */ 'isCaptionLanguageChanged' | /* @conditional-compile-remove(close-captions) */ 'isSpokenLanguageChanged' | /* @conditional-compile-remove(capabilities) */ 'capabilitiesChanged' | 'messageReceived' | 'messageEdited' | 'messageDeleted' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
816824

817825
// @public
818826
export type CapabilitiesChangedListener = (data: CapabilitiesChangeInfo) => void;
@@ -847,13 +855,17 @@ export type ChatAdapterState = ChatAdapterUiState & ChatCompositeClientState;
847855
// @public
848856
export interface ChatAdapterSubscribers {
849857
off(event: 'messageReceived', listener: MessageReceivedListener): void;
858+
off(event: 'messageEdited', listener: MessageEditedListener): void;
859+
off(event: 'messageDeleted', listener: MessageDeletedListener): void;
850860
off(event: 'messageSent', listener: MessageSentListener): void;
851861
off(event: 'messageRead', listener: MessageReadListener): void;
852862
off(event: 'participantsAdded', listener: ParticipantsAddedListener): void;
853863
off(event: 'participantsRemoved', listener: ParticipantsRemovedListener): void;
854864
off(event: 'topicChanged', listener: TopicChangedListener): void;
855865
off(event: 'error', listener: (e: AdapterError) => void): void;
856866
on(event: 'messageReceived', listener: MessageReceivedListener): void;
867+
on(event: 'messageEdited', listener: MessageEditedListener): void;
868+
on(event: 'messageDeleted', listener: MessageDeletedListener): void;
857869
on(event: 'messageSent', listener: MessageSentListener): void;
858870
on(event: 'messageRead', listener: MessageReadListener): void;
859871
on(event: 'participantsAdded', listener: ParticipantsAddedListener): void;
@@ -1086,7 +1098,7 @@ export const createAzureCommunicationCallWithChatAdapterFromClients: ({ callClie
10861098
export const createAzureCommunicationChatAdapter: ({ endpoint: endpointUrl, userId, displayName, credential, threadId }: AzureCommunicationChatAdapterArgs) => Promise<ChatAdapter>;
10871099

10881100
// @public
1089-
export function createAzureCommunicationChatAdapterFromClient(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, options?: {
1101+
export function createAzureCommunicationChatAdapterFromClient(chatClient: StatefulChatClient, chatThreadClient: ChatThreadClient, options?: {
10901102
credential?: CommunicationTokenCredential;
10911103
}): Promise<ChatAdapter>;
10921104

@@ -1330,6 +1342,12 @@ export type MediaDiagnosticChangedEvent = MediaDiagnosticChangedEventArgs & {
13301342
type: 'media';
13311343
};
13321344

1345+
// @public
1346+
export type MessageDeletedListener = MessageReceivedListener;
1347+
1348+
// @public
1349+
export type MessageEditedListener = MessageReceivedListener;
1350+
13331351
// @public
13341352
export type MessageReadListener = (event: {
13351353
message: ChatMessage;

0 commit comments

Comments
 (0)