Skip to content

Commit 8b12157

Browse files
committed
feat: track aria-selected in ContextMenuButton
1 parent 35c0314 commit 8b12157

3 files changed

Lines changed: 22 additions & 22 deletions

File tree

src/components/Dialog/base/ContextMenuButton.tsx

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,24 @@ const ContextMenuButtonWithSubmenu = ({
234234

235235
type ContextMenuButtonProps = BaseContextMenuButtonProps;
236236

237-
export const ContextMenuButton = (props: ContextMenuButtonProps) => (
238-
<BaseContextMenuButton {...props} />
239-
);
237+
export const ContextMenuButton = ({
238+
onBlur,
239+
onFocus,
240+
...props
241+
}: ContextMenuButtonProps) => {
242+
const [isFocused, setIsFocused] = useState(false);
243+
return (
244+
<BaseContextMenuButton
245+
{...props}
246+
aria-selected={isFocused ? 'true' : 'false'}
247+
onBlur={(e) => {
248+
setIsFocused(false);
249+
onBlur?.(e);
250+
}}
251+
onFocus={(e) => {
252+
setIsFocused(true);
253+
onFocus?.(e);
254+
}}
255+
/>
256+
);
257+
};

src/components/MessageActions/RemindMeSubmenu.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,7 @@ export const RemindMeActionButton = ({
2020
const { t } = useTranslationContext();
2121

2222
return (
23-
<ContextMenuButton
24-
aria-selected='false'
25-
className={className}
26-
Icon={IconBellNotification}
27-
{...props}
28-
>
23+
<ContextMenuButton className={className} Icon={IconBellNotification} {...props}>
2924
{t('Remind Me')}
3025
</ContextMenuButton>
3126
);

src/components/MessageActions/defaults.tsx

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ const DefaultMessageActionComponents = {
5353
return (
5454
<ContextMenuButton
5555
aria-label={t('aria/Open Thread')}
56-
aria-selected='false'
5756
className={msgActionsBoxButtonClassName}
5857
data-testid='thread-action'
5958
Icon={IconBubbleText6ChatMessage}
@@ -87,7 +86,6 @@ const DefaultMessageActionComponents = {
8786
return (
8887
<ContextMenuButton
8988
aria-label={t('aria/Quote Message')}
90-
aria-selected='false'
9189
className={msgActionsBoxButtonClassName}
9290
onClick={() => {
9391
handleQuote();
@@ -105,7 +103,6 @@ const DefaultMessageActionComponents = {
105103
return (
106104
<ContextMenuButton
107105
aria-label={isPinned ? t('aria/Unpin Message') : t('aria/Pin Message')}
108-
aria-selected='false'
109106
className={msgActionsBoxButtonClassName}
110107
Icon={IconPin}
111108
onClick={(event) => {
@@ -124,7 +121,6 @@ const DefaultMessageActionComponents = {
124121
return (
125122
<ContextMenuButton
126123
aria-label={t('aria/Copy Message Text')}
127-
aria-selected='false'
128124
className={msgActionsBoxButtonClassName}
129125
Icon={IconSquareBehindSquare2_Copy}
130126
onClick={() => {
@@ -143,7 +139,6 @@ const DefaultMessageActionComponents = {
143139
return (
144140
<ContextMenuButton
145141
aria-label={t('aria/Resend Message')}
146-
aria-selected='false'
147142
className={msgActionsBoxButtonClassName}
148143
Icon={IconArrowRotateClockwise}
149144
onClick={() => {
@@ -163,7 +158,6 @@ const DefaultMessageActionComponents = {
163158
return (
164159
<ContextMenuButton
165160
aria-label={t('aria/Edit Message')}
166-
aria-selected='false'
167161
className={msgActionsBoxButtonClassName}
168162
Icon={IconEditBig}
169163
onClick={() => {
@@ -182,7 +176,6 @@ const DefaultMessageActionComponents = {
182176
return (
183177
<ContextMenuButton
184178
aria-label={t('aria/Mark Message Unread')}
185-
aria-selected='false'
186179
className={msgActionsBoxButtonClassName}
187180
Icon={IconBubbleWideNotificationChatMessage}
188181
onClick={(event) => {
@@ -201,7 +194,6 @@ const DefaultMessageActionComponents = {
201194
return (
202195
<RemindMeActionButton
203196
aria-label={t('aria/Remind Me Message')}
204-
aria-selected='false'
205197
className={msgActionsBoxButtonClassName}
206198
hasSubMenu
207199
isMine={isMyMessage()}
@@ -223,7 +215,6 @@ const DefaultMessageActionComponents = {
223215
return (
224216
<ContextMenuButton
225217
aria-label={t('aria/Bookmark Message')}
226-
aria-selected='false'
227218
className={msgActionsBoxButtonClassName}
228219
Icon={reminder ? IconBookmark : IconBookmark} // todo: what Icon for "Remove reminder" action
229220
onClick={() => {
@@ -246,7 +237,6 @@ const DefaultMessageActionComponents = {
246237
return (
247238
<ContextMenuButton
248239
aria-label={t('aria/Flag Message')}
249-
aria-selected='false'
250240
className={msgActionsBoxButtonClassName}
251241
Icon={IconFlag2}
252242
onClick={(event) => {
@@ -267,7 +257,6 @@ const DefaultMessageActionComponents = {
267257
return (
268258
<ContextMenuButton
269259
aria-label={isMuted ? t('aria/Unmute User') : t('aria/Mute User')}
270-
aria-selected='false'
271260
className={msgActionsBoxButtonClassName}
272261
Icon={isMuted ? IconMute : IconMute} // todo: what icon for "Unmute" action
273262
onClick={(event) => {
@@ -287,7 +276,6 @@ const DefaultMessageActionComponents = {
287276
return (
288277
<ContextMenuButton
289278
aria-label={t('aria/Delete Message')}
290-
aria-selected='false'
291279
className={clsx(
292280
msgActionsBoxButtonClassName,
293281
msgActionsBoxButtonClassNameDestructive,
@@ -311,7 +299,6 @@ const DefaultMessageActionComponents = {
311299
return (
312300
<ContextMenuButton
313301
aria-label={isBlocked ? t('aria/Unblock User') : t('aria/Block User')}
314-
aria-selected='false'
315302
className={clsx(
316303
msgActionsBoxButtonClassName,
317304
msgActionsBoxButtonClassNameDestructive,

0 commit comments

Comments
 (0)