| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | import React from 'react'; |
| | import MessageContent from './MessageContent'; |
| | import MessageActions from './MessageActions'; |
| | import SettingsPanel from './SettingsPanel'; |
| | import DebugPanel from './DebugPanel'; |
| |
|
| | |
| | export const OptimizedMessageContent = React.memo( |
| | MessageContent, |
| | (prevProps, nextProps) => { |
| | |
| | return ( |
| | 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.reasoningContent === |
| | nextProps.message.reasoningContent && |
| | prevProps.message.isReasoningExpanded === |
| | nextProps.message.isReasoningExpanded && |
| | prevProps.isEditing === nextProps.isEditing && |
| | prevProps.editValue === nextProps.editValue && |
| | prevProps.styleState.isMobile === nextProps.styleState.isMobile |
| | ); |
| | }, |
| | ); |
| |
|
| | |
| | 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 && |
| | prevProps.onMessageReset === nextProps.onMessageReset |
| | ); |
| | }, |
| | ); |
| |
|
| | |
| | export const OptimizedSettingsPanel = React.memo( |
| | SettingsPanel, |
| | (prevProps, nextProps) => { |
| | return ( |
| | JSON.stringify(prevProps.inputs) === JSON.stringify(nextProps.inputs) && |
| | JSON.stringify(prevProps.parameterEnabled) === |
| | JSON.stringify(nextProps.parameterEnabled) && |
| | JSON.stringify(prevProps.models) === JSON.stringify(nextProps.models) && |
| | JSON.stringify(prevProps.groups) === JSON.stringify(nextProps.groups) && |
| | prevProps.customRequestMode === nextProps.customRequestMode && |
| | prevProps.customRequestBody === nextProps.customRequestBody && |
| | prevProps.showDebugPanel === nextProps.showDebugPanel && |
| | prevProps.showSettings === nextProps.showSettings && |
| | JSON.stringify(prevProps.previewPayload) === |
| | JSON.stringify(nextProps.previewPayload) && |
| | JSON.stringify(prevProps.messages) === JSON.stringify(nextProps.messages) |
| | ); |
| | }, |
| | ); |
| |
|
| | |
| | export const OptimizedDebugPanel = React.memo( |
| | DebugPanel, |
| | (prevProps, nextProps) => { |
| | return ( |
| | prevProps.show === nextProps.show && |
| | prevProps.activeTab === nextProps.activeTab && |
| | JSON.stringify(prevProps.debugData) === |
| | JSON.stringify(nextProps.debugData) && |
| | JSON.stringify(prevProps.previewPayload) === |
| | JSON.stringify(nextProps.previewPayload) && |
| | prevProps.customRequestMode === nextProps.customRequestMode && |
| | prevProps.showDebugPanel === nextProps.showDebugPanel |
| | ); |
| | }, |
| | ); |
| |
|