import { type ReactElement, useMemo } from 'react'; import Grid2 from '@mui/material/Grid2'; import { getComponentFromMap } from '@pega/react-sdk-components/lib/bridge/helpers/sdk_component_map'; import useCollapsibleState from '@pega/react-sdk-components/lib/hooks/useCollapsibleState'; import type { PConnFieldProps } from '@pega/react-sdk-components/lib/types/PConnProps'; interface GroupProps extends PConnFieldProps { children: ReactElement[]; heading: string; showHeading: boolean; instructions?: string; collapseOnLoad?: any; type: string; defaultCollapsed?: any; collapsible?: any; } export default function Group(props: GroupProps) { const FieldGroup = getComponentFromMap('FieldGroup'); const { children, displayMode, type, collapseOnLoad = 'none', collapsible, defaultCollapsed = false, showHeading = true, heading, instructions } = props; const isReadOnly = displayMode === 'DISPLAY_ONLY'; const { isCollapsibleMode, collapsed, setCollapsed } = useCollapsibleState(collapseOnLoad, collapsible, defaultCollapsed, showHeading); const onToggleCollapsed = () => { if (collapsed === undefined) return; setCollapsed(current => !current); }; const content = useMemo(() => { return ( {children?.map(child => ( {child} ))} ); }, [children, type, isReadOnly]); if (!children) return null; return ( {content} ); }