@@ -17,14 +17,15 @@ import FilePreviewHeader from './FilePreviewHeader';
1717import { MessageBody as FileBody } from '../Message/MessageBody' ;
1818import { FileMetrics } from './FileMetrics' ;
1919import { useRCContext } from '../../context/RCInstance' ;
20- import { useMessageStore } from '../../store' ;
20+ import { useMessageStore , useSidebarStore } from '../../store' ;
2121import { fileDisplayStyles as styles } from './Files.styles' ;
2222
2323const FileMessage = ( { fileMessage } ) => {
2424 const { classNames, styleOverrides } = useComponentOverrides ( 'FileMessage' ) ;
2525 const dispatchToastMessage = useToastBarDispatch ( ) ;
2626 const { RCInstance } = useRCContext ( ) ;
2727 const messages = useMessageStore ( ( state ) => state . messages ) ;
28+ const setShowSidebar = useSidebarStore ( ( state ) => state . setShowSidebar ) ;
2829
2930 const [ fileToDelete , setFileToDelete ] = useState ( { } ) ;
3031
@@ -37,6 +38,23 @@ const FileMessage = ({ fileMessage }) => {
3738 document . body . removeChild ( anchor ) ;
3839 } , [ ] ) ;
3940
41+ const navigateToFile = ( id ) => {
42+ const message = messages . find ( ( msg ) => msg ?. file ?. _id === id ) ;
43+ if ( message ) {
44+ const element = document . getElementById ( `ec-message-body-${ message . _id } ` ) ;
45+ if ( element ) {
46+ element . style . backgroundColor = '#ffeb3b' ;
47+ element . scrollIntoView ( { behavior : 'smooth' , block : 'center' } ) ;
48+ setShowSidebar ( false ) ;
49+
50+ setTimeout ( ( ) => {
51+ element . style . backgroundColor = '' ;
52+ element . style . transition = 'background-color 0.5s ease-out' ;
53+ } , 2000 ) ;
54+ }
55+ }
56+ } ;
57+
4058 const deleteFile = useCallback (
4159 async ( file ) => {
4260 messages . forEach ( async ( message ) => {
@@ -92,10 +110,16 @@ const FileMessage = ({ fileMessage }) => {
92110 } ,
93111 {
94112 id : 'delete' ,
95- action : ( ) => setFileToDelete ( fileMessage ) ,
113+ action : ( ) => setFileToDelete ( fileMessage . _id ) ,
96114 label : 'Delete' ,
97115 icon : 'trash' ,
98116 } ,
117+ {
118+ id : 'navigate' ,
119+ action : ( ) => navigateToFile ( fileMessage . _id ) ,
120+ label : 'Navigate' ,
121+ icon : 'arrow-back' ,
122+ } ,
99123 ] }
100124 />
101125 </ Box >
0 commit comments