groupingComponentChildren.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import {Fragment} from 'react';
  2. import isObject from 'lodash/isObject';
  3. import {EventGroupComponent} from 'sentry/types';
  4. import GroupingComponent, {
  5. GroupingComponentListItem,
  6. GroupingValue,
  7. } from './groupingComponent';
  8. import {groupingComponentFilter} from './utils';
  9. type Props = {
  10. component: EventGroupComponent;
  11. showNonContributing: boolean;
  12. };
  13. const GroupingComponentChildren = ({component, showNonContributing}: Props) => {
  14. return (
  15. <Fragment>
  16. {(component.values as EventGroupComponent[])
  17. .filter(value => groupingComponentFilter(value, showNonContributing))
  18. .map((value, idx) => (
  19. <GroupingComponentListItem key={idx}>
  20. {isObject(value) ? (
  21. <GroupingComponent
  22. component={value}
  23. showNonContributing={showNonContributing}
  24. />
  25. ) : (
  26. <GroupingValue valueType={component.name || component.id}>
  27. {typeof value === 'string' || typeof value === 'number'
  28. ? value
  29. : JSON.stringify(value, null, 2)}
  30. </GroupingValue>
  31. )}
  32. </GroupingComponentListItem>
  33. ))}
  34. </Fragment>
  35. );
  36. };
  37. export default GroupingComponentChildren;