/** * WordPress dependencies */ import { __, sprintf } from '@wordpress/i18n'; import { createInterpolateElement } from '@wordpress/element'; import { Stack } from '@wordpress/ui'; /** * Internal dependencies */ import type { NormalizedField } from '../../../types'; interface ActivityGroupProps< Item > { groupName: string; groupData: Item[]; groupField: NormalizedField< Item >; showLabel?: boolean; children: React.ReactNode; } export default function ActivityGroup< Item >( { groupName, groupData, groupField, showLabel = true, children, }: ActivityGroupProps< Item > ) { // Render group header content - either with or without field label const groupHeader = showLabel ? ( createInterpolateElement( // translators: %s: The label of the field e.g. "Status". sprintf( __( '%s: ' ), groupField.label ).trim(), { groupName: ( ), } ) ) : ( ); return (

{ groupHeader }

{ children }
); }