refactor(ToolRenderer): ensure stable hook order

This commit is contained in:
Haileyesus
2026-02-12 21:17:54 +03:00
parent 4f5212f93f
commit deec5f2f1b

View File

@@ -54,8 +54,6 @@ export const ToolRenderer: React.FC<ToolRendererProps> = memo(({
const config = getToolConfig(toolName);
const displayConfig: any = mode === 'input' ? config.input : config.result;
if (!displayConfig) return null;
const parsedData = useMemo(() => {
try {
const rawData = mode === 'input' ? toolInput : toolResult;
@@ -66,12 +64,15 @@ export const ToolRenderer: React.FC<ToolRendererProps> = memo(({
}, [mode, toolInput, toolResult]);
const handleAction = useCallback(() => {
if (displayConfig.action === 'open-file' && onFileOpen) {
if (displayConfig?.action === 'open-file' && onFileOpen) {
const value = displayConfig.getValue?.(parsedData) || '';
onFileOpen(value);
}
}, [displayConfig, parsedData, onFileOpen]);
// Keep hooks above this guard so hook call order stays stable across renders.
if (!displayConfig) return null;
if (displayConfig.type === 'one-line') {
const value = displayConfig.getValue?.(parsedData) || '';
const secondary = displayConfig.getSecondary?.(parsedData);