2
2
import React , { useEffect , useState , useRef , useCallback } from 'react' ;
3
3
import { observer } from 'mobx-react-lite' ;
4
4
import { useParams } from 'react-router-dom' ;
5
- import { ChatMessage , Artifact , TextContent } from 'store/interface' ;
5
+ import { ChatMessage , Artifact , TextContent , SSEMessage , APIResponse } from 'store/interface' ;
6
6
import { useStores } from 'store' ;
7
7
import { createSocketInstance } from 'config/socket' ;
8
8
import SidebarComponent from 'components/common/SidebarComponent.tsx' ;
@@ -555,7 +555,7 @@ const connectToLogWebSocket = (
555
555
556
556
export const HiveChatView : React . FC = observer ( ( ) => {
557
557
const { uuid, chatId } = useParams < RouteParams > ( ) ;
558
- const { chat, ui } = useStores ( ) ;
558
+ const { chat, ui, main } = useStores ( ) ;
559
559
const [ message , setMessage ] = useState ( '' ) ;
560
560
const [ loading , setLoading ] = useState ( true ) ;
561
561
const [ error , setError ] = useState < string | null > ( null ) ;
@@ -626,7 +626,7 @@ export const HiveChatView: React.FC = observer(() => {
626
626
const [ isRefreshingTitle , setIsRefreshingTitle ] = useState ( false ) ;
627
627
const [ lastTitleRefreshTime , setLastTitleRefreshTime ] = useState ( Date . now ( ) ) ;
628
628
const titleRefreshIntervalRef = useRef < NodeJS . Timeout | null > ( null ) ;
629
-
629
+ const [ sseLogs , setSseLogs ] = useState < SSEMessage [ ] > ( [ ] ) ;
630
630
useBrowserTabTitle ( 'Hive Chat' ) ;
631
631
632
632
if ( isVerboseLoggingEnabled ) {
@@ -968,6 +968,32 @@ export const HiveChatView: React.FC = observer(() => {
968
968
const res = await chat . loadArtifactsForChat ( chatId ) ;
969
969
console . log ( 'Artifacts for that chat' , res ) ;
970
970
setActionArtifact ( { } as Artifact ) ;
971
+
972
+ const sseArtifacts = res ?. filter (
973
+ ( artifact ) =>
974
+ artifact &&
975
+ artifact . type === 'text' &&
976
+ artifact . content &&
977
+ 'text_type' in artifact . content &&
978
+ artifact . content . text_type === 'sse_logs'
979
+ ) ;
980
+
981
+ console . log ( 'sseArtifacts' , sseArtifacts ) ;
982
+
983
+ if ( sseArtifacts ) {
984
+ setSseArtifact ( sseArtifacts ) ;
985
+
986
+ const response : APIResponse = await main . getAllSSEMessages ( chatId ) ;
987
+
988
+ if ( response . success && response . data . messages ) {
989
+ const sortedLogs = response . data . messages . sort (
990
+ ( a , b ) => new Date ( b . updated_at ) . getTime ( ) - new Date ( a . updated_at ) . getTime ( )
991
+ ) ;
992
+
993
+ setSseLogs ( sortedLogs ) ;
994
+ }
995
+ }
996
+
971
997
const screenArtifacts = res ?. filter (
972
998
( artifact ) =>
973
999
artifact &&
@@ -1024,19 +1050,6 @@ export const HiveChatView: React.FC = observer(() => {
1024
1050
setTextArtifact ( textArtifacts ) ;
1025
1051
}
1026
1052
1027
- const sseArtifacts = res ?. filter (
1028
- ( artifact ) =>
1029
- artifact &&
1030
- artifact . type === 'text' &&
1031
- artifact . content &&
1032
- 'text_type' in artifact . content &&
1033
- artifact . content . text_type === 'sse_logs'
1034
- ) ;
1035
-
1036
- if ( sseArtifacts ) {
1037
- setSseArtifact ( sseArtifacts ) ;
1038
- }
1039
-
1040
1053
const systemMessages = messages ?. filter ( ( msg ) => msg . role !== 'user' ) ;
1041
1054
const lastSystemMessageId =
1042
1055
systemMessages ?. length > 0 ? systemMessages [ systemMessages . length - 1 ] . id : null ;
@@ -1052,7 +1065,7 @@ export const HiveChatView: React.FC = observer(() => {
1052
1065
}
1053
1066
} ;
1054
1067
logArtifacts ( ) ;
1055
- } , [ chat , chatId , isArtifactLoggingEnabled , messages ] ) ;
1068
+ } , [ chat , chatId , isArtifactLoggingEnabled , main , messages ] ) ;
1056
1069
1057
1070
useEffect ( ( ) => {
1058
1071
const processArtifacts = ( ) => {
@@ -1751,7 +1764,7 @@ export const HiveChatView: React.FC = observer(() => {
1751
1764
codeArtifact = { codeArtifact ?? [ ] }
1752
1765
textArtifact = { textArtifact ?? [ ] }
1753
1766
sseArtifact = { sseArtifact ?? [ ] }
1754
- chatId = { chatId }
1767
+ sseLogs = { sseLogs }
1755
1768
activeTab = { artifactTab }
1756
1769
/>
1757
1770
</ ViewerSection >
0 commit comments