ishaq101 commited on
Commit
7cf66f8
·
1 Parent(s): c479f3f

[NOTICKET] [DED][FE] Fix analytics chat formatting and message persistence for cached responses

Browse files

- Clear streamingMsgId immediately on SSE "message" event so cached responses
render with preprocessMarkdown applied (proper table/markdown formatting)
- Guard loadRoomMessages against overwriting local messages when backend returns
empty array — preserves chat history when backend does not persist cached LLM responses
- Add null-safety on detail?.messages to prevent TypeError on null API response

Files changed (1) hide show
  1. src/app/components/Main.tsx +5 -2
src/app/components/Main.tsx CHANGED
@@ -349,7 +349,7 @@ export default function Main() {
349
  const loadRoomMessages = async (roomId: string) => {
350
  try {
351
  const detail = await getRoom(roomId);
352
- const messages: Message[] = detail.messages.map((m) => ({
353
  id: m.id,
354
  role: m.role,
355
  content: m.content,
@@ -359,7 +359,9 @@ export default function Main() {
359
  setChats((prev) =>
360
  prev.map((chat) =>
361
  chat.id === roomId
362
- ? { ...chat, messages, messagesLoaded: true }
 
 
363
  : chat
364
  )
365
  );
@@ -563,6 +565,7 @@ export default function Main() {
563
  : chat
564
  )
565
  );
 
566
  } else if (currentEvent === "done") {
567
  streamDone = true;
568
  break;
 
349
  const loadRoomMessages = async (roomId: string) => {
350
  try {
351
  const detail = await getRoom(roomId);
352
+ const messages: Message[] = (detail?.messages ?? []).map((m) => ({
353
  id: m.id,
354
  role: m.role,
355
  content: m.content,
 
359
  setChats((prev) =>
360
  prev.map((chat) =>
361
  chat.id === roomId
362
+ ? messages.length === 0 && chat.messages.length > 0
363
+ ? { ...chat, messagesLoaded: true }
364
+ : { ...chat, messages, messagesLoaded: true }
365
  : chat
366
  )
367
  );
 
565
  : chat
566
  )
567
  );
568
+ setStreamingMsgId(null);
569
  } else if (currentEvent === "done") {
570
  streamDone = true;
571
  break;