Просмотр исходного кода

🐛 fix: Role switching not updating UI immediately in playground

Fix role toggle functionality where switching message roles (assistant/system)
did not update the UI immediately and required page refresh to see changes.

Changes:
- Add message.role comparison in OptimizedMessageContent memo function
- Add message.role comparison in OptimizedMessageActions memo function

The issue was caused by React.memo optimization that wasn't tracking role
changes, preventing re-renders when only the message role property changed.
Now role switches are reflected immediately in both message content display
and action button states.

Fixes: Role switching requires page refresh to display correctly
Apple\Apple 9 месяцев назад
Родитель
Сommit
aa49d2a360
1 измененных файлов с 2 добавлено и 0 удалено
  1. 2 0
      web/src/components/playground/OptimizedComponents.js

+ 2 - 0
web/src/components/playground/OptimizedComponents.js

@@ -11,6 +11,7 @@ export const OptimizedMessageContent = React.memo(MessageContent, (prevProps, ne
     prevProps.message.id === nextProps.message.id &&
     prevProps.message.content === nextProps.message.content &&
     prevProps.message.status === nextProps.message.status &&
+    prevProps.message.role === nextProps.message.role &&
     prevProps.message.isReasoningExpanded === nextProps.message.isReasoningExpanded &&
     prevProps.isEditing === nextProps.isEditing &&
     prevProps.editValue === nextProps.editValue &&
@@ -22,6 +23,7 @@ export const OptimizedMessageContent = React.memo(MessageContent, (prevProps, ne
 export const OptimizedMessageActions = React.memo(MessageActions, (prevProps, nextProps) => {
   return (
     prevProps.message.id === nextProps.message.id &&
+    prevProps.message.role === nextProps.message.role &&
     prevProps.isAnyMessageGenerating === nextProps.isAnyMessageGenerating &&
     prevProps.isEditing === nextProps.isEditing
   );