Skip to content

Commit 6983984

Browse files
authored
Merge branch 'main' into cnwankwo/TogetherModeStream_Impl
2 parents 37346a7 + 47e7280 commit 6983984

File tree

38 files changed

+526
-173
lines changed

38 files changed

+526
-173
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"type": "prerelease",
3+
"area": "improvement",
4+
"workstream": "Updating test server dependencies",
5+
"comment": "updating express to 4.21.2 so we can fix a dependnecy issue with path-to-regexp",
6+
"packageName": "@azure/communication-react",
7+
"email": "[email protected]",
8+
"dependentChangeType": "patch"
9+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"type": "prerelease",
3+
"area": "feature",
4+
"workstream": "together-mode",
5+
"comment": "Cleanup code logic",
6+
"packageName": "@azure/communication-react",
7+
"dependentChangeType": "patch"
8+
}
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": "Hard mute",
5+
"comment": "Add sdk references to story book",
6+
"packageName": "@azure/communication-react",
7+
"email": "[email protected]",
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": "A11y",
5+
"comment": "Fix keyboard navigation for message menu button",
6+
"packageName": "@azure/communication-react",
7+
"email": "[email protected]",
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": "Hard mute",
5+
"comment": "Add sdk references to story book",
6+
"packageName": "@azure/communication-react",
7+
"email": "[email protected]",
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": "A11y",
5+
"comment": "Fix keyboard navigation for message menu button",
6+
"packageName": "@azure/communication-react",
7+
"email": "[email protected]",
8+
"dependentChangeType": "patch"
9+
}

common/config/rush/pnpm-lock.yaml

Lines changed: 47 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/config/rush/variants/stable/pnpm-lock.yaml

Lines changed: 51 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/react-components/src/components/ChatMessage/MessageComponents/FluentChatMessageComponent.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ import { IPersona, PersonaSize, mergeStyles, Persona } from '@fluentui/react';
1313
import { mergeClasses } from '@fluentui/react-components';
1414
import { createStyleFromV8Style } from '../../styles/v8StyleShim';
1515
import { ChatMessage as FluentChatMessage } from '@fluentui-contrib/react-chat';
16-
import { getFluentUIAttachedValue } from '../../utils/ChatMessageComponentUtils';
16+
import {
17+
getFluentUIAttachedValue,
18+
removeFluentUIKeyboardNavigationStyles
19+
} from '../../utils/ChatMessageComponentUtils';
1720
import { ChatMessageComponentWrapperProps } from '../ChatMessageComponentWrapper';
1821
/* @conditional-compile-remove(data-loss-prevention) */
1922
import { BlockedMessage } from '../../../types/ChatMessage';
@@ -140,8 +143,13 @@ export const FluentChatMessageComponent = (props: FluentChatMessageComponentWrap
140143
);
141144
}, [message.senderDisplayName, message.senderId, onRenderAvatar, shouldShowAvatar]);
142145

146+
const setMessageContainerRef = useCallback((node: HTMLDivElement | null) => {
147+
removeFluentUIKeyboardNavigationStyles(node);
148+
}, []);
149+
143150
const messageBodyProps = useMemo(() => {
144151
return {
152+
ref: setMessageContainerRef,
145153
// chatItemMessageContainer used in className and style prop as style prop can't handle CSS selectors
146154
className: mergeClasses(
147155
chatMessageRenderStyles.bodyCommon,
@@ -157,6 +165,7 @@ export const FluentChatMessageComponent = (props: FluentChatMessageComponentWrap
157165
styles?.chatItemMessageContainer !== undefined ? createStyleFromV8Style(styles?.chatItemMessageContainer) : {}
158166
};
159167
}, [
168+
setMessageContainerRef,
160169
chatMessageRenderStyles.bodyCommon,
161170
chatMessageRenderStyles.bodyWithoutAvatar,
162171
chatMessageRenderStyles.bodyHiddenAvatar,

packages/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.tsx

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,18 +108,20 @@ export type ChatMyMessageComponentProps = {
108108
onInsertInlineImage?: (imageAttributes: Record<string, string>, messageId: string) => void;
109109
/* @conditional-compile-remove(rich-text-editor-image-upload) */
110110
inlineImagesWithProgress?: AttachmentMetadataInProgress[];
111-
// Optional callback called when editing is complete (submitted or cancelled).
112-
onEditComplete?: () => void;
113111
};
114112

115113
/**
116114
* @private
117115
*/
118116
export const ChatMyMessageComponent = (props: ChatMyMessageComponentProps): JSX.Element => {
119-
const { onDeleteMessage, onSendMessage, message, onEditComplete, onCancelEditMessage, onUpdateMessage } = props;
117+
const { onDeleteMessage, onSendMessage, message, onCancelEditMessage, onUpdateMessage } = props;
120118
const [isEditing, setIsEditing] = useState(false);
119+
const [focusMessageAfterEditing, setFocusMessageAfterEditing] = useState(false);
121120

122-
const onEditClick = useCallback(() => setIsEditing(true), [setIsEditing]);
121+
const onEditClick = useCallback(() => {
122+
setIsEditing(true);
123+
setFocusMessageAfterEditing(false);
124+
}, []);
123125

124126
const clientMessageId = 'clientMessageId' in message ? message.clientMessageId : undefined;
125127
const content = 'content' in message ? message.content : undefined;
@@ -178,18 +180,20 @@ export const ChatMyMessageComponent = (props: ChatMyMessageComponentProps): JSX.
178180
{ attachments: attachments }
179181
);
180182
setIsEditing(false);
181-
onEditComplete?.();
183+
184+
setFocusMessageAfterEditing(true);
182185
},
183-
[message, onEditComplete, onUpdateMessage]
186+
[message, onUpdateMessage]
184187
);
185188

186189
const onCancelHandler = useCallback(
187190
(messageId: string) => {
188191
onCancelEditMessage?.(messageId);
189192
setIsEditing(false);
190-
onEditComplete?.();
193+
194+
setFocusMessageAfterEditing(true);
191195
},
192-
[onEditComplete, onCancelEditMessage]
196+
[onCancelEditMessage]
193197
);
194198

195199
if (isEditing && message.messageType === 'chat') {
@@ -227,6 +231,7 @@ export const ChatMyMessageComponent = (props: ChatMyMessageComponentProps): JSX.
227231
inlineImageOptions={props.inlineImageOptions}
228232
/* @conditional-compile-remove(mention) */
229233
mentionDisplayOptions={props.mentionOptions?.displayOptions}
234+
shouldFocusFluentMessageBody={focusMessageAfterEditing}
230235
/>
231236
);
232237
}

0 commit comments

Comments
 (0)