import { Box, Grid } from '@mui/material'; import { ObjectFieldTemplateProps } from '@rjsf/utils'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { HelpTooltip, StyledCard, StyledCardContent, StyledFieldLabel } from '../components'; import { useArrayItemContext } from '../context/ArrayItemContext'; export const ObjectFieldTemplate: React.FC = (props) => { const { properties, schema, uiSchema } = props; const { t } = useTranslation('agent'); const { isInArrayItem } = useArrayItemContext(); // Check if this should use compact layout const compactFieldsValue = uiSchema?.['ui:compactFields'] as unknown; const compactFields = Array.isArray(compactFieldsValue) ? (compactFieldsValue as string[]) : []; const useCompactLayout = compactFields.length > 0; const renderProperties = () => { if (!useCompactLayout) { // Default vertical layout return properties.map((element) => ( {element.content} )); } // Compact layout: separate compact fields from full-width fields const compactProps: typeof properties = []; const fullWidthProps: typeof properties = []; properties.forEach((element) => { if (compactFields.includes(element.name)) { compactProps.push(element); } else { fullWidthProps.push(element); } }); return ( <> {/* Render compact fields in 2-column grid */} {compactProps.length > 0 && ( {compactProps.map((element) => ( {element.content} ))} )} {/* Render full-width fields */} {fullWidthProps.map((element) => ( {element.content} ))} ); }; return ( {schema.title && ( {t(schema.title)} {schema.description && } )} {renderProperties()} ); };