Skip to content

Commit f555531

Browse files
authored
Fix: Highlight entire message body for 'Jump to Message' functionality (#822)
* Fix: Highlight entire message body for 'Jump to Message' functionality and improve visibility in dark mode * Changed to Subtle shade * Syncing same color config for thread message case * Made Dark mode color subtle
1 parent 7ba603a commit f555531

1 file changed

Lines changed: 34 additions & 7 deletions

File tree

packages/react/src/views/MessageAggregators/common/MessageAggregator.js

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import React, { useState, useMemo } from 'react';
2-
import { isSameDay, format, set } from 'date-fns';
2+
import { isSameDay, format } from 'date-fns';
33
import {
44
Box,
55
Sidebar,
66
Popup,
77
useTheme,
88
ActionButton,
99
Icon,
10+
lighten,
11+
darken,
1012
} from '@embeddedchat/ui-elements';
1113
import { MessageDivider } from '../../Message/MessageDivider';
1214
import Message from '../../Message/Message';
@@ -33,6 +35,7 @@ export const MessageAggregator = ({
3335
viewType = 'Sidebar',
3436
}) => {
3537
const { theme } = useTheme();
38+
const { mode } = useTheme();
3639
const styles = getMessageAggregatorStyles(theme);
3740
const setExclusiveState = useSetExclusiveState();
3841
const { ECOptions } = useRCContext();
@@ -59,42 +62,66 @@ export const MessageAggregator = ({
5962
console.error('Invalid message object:', msg);
6063
return;
6164
}
65+
6266
const { _id: msgId, tmid: threadId } = msg;
67+
6368
if (msgId) {
6469
let element;
6570
if (threadId) {
6671
const parentMessage = messages.find((m) => m._id === threadId);
72+
6773
if (parentMessage) {
6874
closeThread();
75+
6976
setTimeout(() => {
7077
openThread(parentMessage);
7178
setShowSidebar(false);
79+
7280
setTimeout(() => {
73-
element = document.getElementById(`ec-message-body-${msgId}`);
81+
const childElement = document.getElementById(
82+
`ec-message-body-${msgId}`
83+
);
84+
element = childElement.closest('.ec-message');
85+
7486
if (element) {
7587
element.scrollIntoView({
7688
behavior: 'smooth',
7789
block: 'nearest',
7890
});
79-
element.style.backgroundColor = theme.colors.warning;
91+
92+
element.style.backgroundColor =
93+
mode === 'light'
94+
? lighten(theme.colors.warning, 0.85)
95+
: darken(theme.colors.warningForeground, 0.75);
96+
8097
setTimeout(() => {
8198
element.style.backgroundColor = '';
82-
}, 1000);
99+
}, 2000);
83100
}
84101
}, 300);
85102
}, 300);
86103
}
87104
} else {
88105
closeThread();
106+
89107
setTimeout(() => {
90-
element = document.getElementById(`ec-message-body-${msgId}`);
108+
const childElement = document.getElementById(
109+
`ec-message-body-${msgId}`
110+
);
111+
element = childElement.closest('.ec-message');
112+
91113
if (element) {
92114
setShowSidebar(false);
93115
element.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
94-
element.style.backgroundColor = theme.colors.warning;
116+
117+
element.style.backgroundColor =
118+
mode === 'light'
119+
? lighten(theme.colors.warning, 0.85)
120+
: darken(theme.colors.warningForeground, 0.75);
121+
95122
setTimeout(() => {
96123
element.style.backgroundColor = '';
97-
}, 1000);
124+
}, 2000);
98125
}
99126
}, 300);
100127
}

0 commit comments

Comments
 (0)