Skip to content

Commit

Permalink
refactor: avoid registering mouseleave hiding event for MessageAction…
Browse files Browse the repository at this point in the history
…s inside MessageSimple.
  • Loading branch information
MartinCupela committed Mar 4, 2022
1 parent 1968a1e commit c103ed2
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
7 changes: 2 additions & 5 deletions src/components/Message/MessageSimple.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useRef } from 'react';
import React from 'react';

import { MessageDeleted as DefaultMessageDeleted } from './MessageDeleted';
import { MessageOptions as DefaultMessageOptions } from './MessageOptions';
Expand Down Expand Up @@ -66,8 +66,6 @@ const MessageSimpleWithContext = <
ReactionsList = DefaultReactionList,
} = useComponentContext<StreamChatGenerics>('MessageSimple');

const messageWrapperRef = useRef<HTMLDivElement | null>(null);

const hasAttachment = messageHasAttachments(message);
const hasReactions = messageHasReactions(message);

Expand Down Expand Up @@ -110,7 +108,6 @@ const MessageSimpleWithContext = <
${endOfGroup ? 'str-chat__virtual-message__wrapper--end' : ''}
`.trim()}
key={message.id}
ref={messageWrapperRef}
>
<MessageStatus />
{message.user && (
Expand All @@ -137,7 +134,7 @@ const MessageSimpleWithContext = <
}
>
<>
<MessageOptions messageWrapperRef={messageWrapperRef} />
<MessageOptions />
{hasReactions && !showDetailedReactions && isReactionEnabled && (
<ReactionsList reverse />
)}
Expand Down
11 changes: 9 additions & 2 deletions src/components/MessageActions/MessageActions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,12 @@ export const MessageActions = <

const isMuted = useCallback(() => isUserMuted(message, mutes), [message, mutes]);

const hideOptions = useCallback(() => setActionsBoxOpen(false), []);
const hideOptions = useCallback((event: MouseEvent | KeyboardEvent) => {
if (event instanceof KeyboardEvent && event.key !== 'Escape') {
return;
}
setActionsBoxOpen(false);
}, []);
const messageActions = getMessageActions();
const messageDeletedAt = !!message?.deleted_at;

Expand All @@ -90,8 +95,10 @@ export const MessageActions = <
useEffect(() => {
if (actionsBoxOpen) {
document.addEventListener('click', hideOptions);
document.addEventListener('keyup', hideOptions);
} else {
document.removeEventListener('click', hideOptions);
document.addEventListener('keyup', hideOptions);
}

return () => document.removeEventListener('click', hideOptions);
Expand Down Expand Up @@ -143,7 +150,7 @@ const MessageActionsWrapper: React.FC<MessageActionsWrapperProps> = (props) => {

const onClickOptionsAction = (event: React.BaseSyntheticEvent) => {
event.stopPropagation();
setActionsBoxOpen(true);
setActionsBoxOpen((prev) => !prev);
};

const wrapperProps = {
Expand Down

0 comments on commit c103ed2

Please sign in to comment.