11import React , { useState , useMemo } from 'react' ;
2- import { isSameDay , format , set } from 'date-fns' ;
2+ import { isSameDay , format } from 'date-fns' ;
33import {
44 Box ,
55 Sidebar ,
66 Popup ,
77 useTheme ,
88 ActionButton ,
99 Icon ,
10+ lighten ,
11+ darken ,
1012} from '@embeddedchat/ui-elements' ;
1113import { MessageDivider } from '../../Message/MessageDivider' ;
1214import 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