fix: add copy msgbody on right panel when msg has a body

pull/3206/head
Audric Ackermann 1 year ago
parent a56d0279fc
commit 1f69e3b792

@ -20,6 +20,7 @@ import {
import { deleteMessagesById } from '../../../../../interactions/conversations/unsendingInteractions'; import { deleteMessagesById } from '../../../../../interactions/conversations/unsendingInteractions';
import { import {
useMessageAttachments, useMessageAttachments,
useMessageBody,
useMessageDirection, useMessageDirection,
useMessageIsDeletable, useMessageIsDeletable,
useMessageQuote, useMessageQuote,
@ -42,6 +43,8 @@ import { PanelButtonGroup, PanelIconButton } from '../../../../buttons';
import { Message } from '../../../message/message-item/Message'; import { Message } from '../../../message/message-item/Message';
import { AttachmentInfo, MessageInfo } from './components'; import { AttachmentInfo, MessageInfo } from './components';
import { AttachmentCarousel } from './components/AttachmentCarousel'; import { AttachmentCarousel } from './components/AttachmentCarousel';
import { clipboard } from 'electron';
import { isEmpty } from 'lodash';
// NOTE we override the default max-widths when in the detail isDetailView // NOTE we override the default max-widths when in the detail isDetailView
const StyledMessageBody = styled.div` const StyledMessageBody = styled.div`
@ -188,6 +191,7 @@ export const OverlayMessageInfo = () => {
const rightOverlayMode = useRightOverlayMode(); const rightOverlayMode = useRightOverlayMode();
const messageId = useSelector(getMessageInfoId); const messageId = useSelector(getMessageInfoId);
const messageInfo = useMessageInfo(messageId); const messageInfo = useMessageInfo(messageId);
const messageBody = useMessageBody(messageId);
const isDeletable = useMessageIsDeletable(messageId); const isDeletable = useMessageIsDeletable(messageId);
const direction = useMessageDirection(messageId); const direction = useMessageDirection(messageId);
const timestamp = useMessageTimestamp(messageId); const timestamp = useMessageTimestamp(messageId);
@ -285,6 +289,16 @@ export const OverlayMessageInfo = () => {
<MessageInfo messageId={messageId} errors={messageInfo.errors} /> <MessageInfo messageId={messageId} errors={messageInfo.errors} />
<SpacerLG /> <SpacerLG />
<PanelButtonGroup style={{ margin: '0' }}> <PanelButtonGroup style={{ margin: '0' }}>
{messageBody && !isEmpty(messageBody) ? (
<PanelIconButton
text={window.i18n('copy')}
iconType="copy"
onClick={() => {
clipboard.writeText(messageBody);
}}
dataTestId="copy-msg-from-details"
/>
) : null}
<PanelIconButton <PanelIconButton
text={window.i18n('reply')} text={window.i18n('reply')}
iconType="reply" iconType="reply"

@ -131,7 +131,7 @@ export function useMessageTimestamp(messageId: string | undefined) {
return useMessagePropsByMessageId(messageId)?.propsForMessage.timestamp; return useMessagePropsByMessageId(messageId)?.propsForMessage.timestamp;
} }
export function useMessageBody(messageId: string) { export function useMessageBody(messageId?: string) {
return useMessagePropsByMessageId(messageId)?.propsForMessage.text; return useMessagePropsByMessageId(messageId)?.propsForMessage.text;
} }

Loading…
Cancel
Save