import { Box, Tab, Tabs } from '@mui/material'; import { ObjectFieldTemplateProps } from '@rjsf/utils'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useShallow } from 'zustand/react/shallow'; import { useAgentChatStore } from '../../../../../Agent/store/agentChatStore/index'; export const RootObjectFieldTemplate: React.FC = (props) => { const { properties, schema } = props; const [activeTab, setActiveTab] = useState(0); const { t } = useTranslation('agent'); console.log('RootObjectFieldTemplate rendered, properties count:', properties.length, 'properties:', properties.map(p => p.name)); const { formFieldsToScrollTo } = useAgentChatStore( useShallow((state) => ({ formFieldsToScrollTo: state.formFieldsToScrollTo, })), ); useEffect(() => { if (formFieldsToScrollTo.length > 0) { const targetTab = formFieldsToScrollTo[0]; const tabIndex = properties.findIndex(property => property.name === targetTab); if (tabIndex !== -1 && tabIndex !== activeTab) { setActiveTab(tabIndex); } } }, [formFieldsToScrollTo, properties, activeTab]); const handleTabChange = (_event: React.SyntheticEvent, newValue: number) => { setActiveTab(newValue); }; return ( {properties.map((element, index) => { const fieldSchema = schema.properties?.[element.name]; const title = typeof fieldSchema === 'object' && fieldSchema.title ? t(fieldSchema.title) : element.name; return ( ); })} {properties.map((element, index) => ( ))} ); };