Skip to content

Commit 3457056

Browse files
authored
ref(groupingInfo): move groupingConfig to section header (#97696)
1 parent 863cd2f commit 3457056

File tree

5 files changed

+35
-30
lines changed

5 files changed

+35
-30
lines changed

static/app/components/events/groupingInfo/groupingInfo.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,12 @@ export default function GroupingInfo({
6666
<Fragment>
6767
<ConfigHeader>
6868
{hasStreamlinedUI && (
69-
<GroupInfoSummary event={event} group={group} projectSlug={projectSlug} />
69+
<GroupInfoSummary
70+
event={event}
71+
group={group}
72+
projectSlug={projectSlug}
73+
showGroupingConfig={showGroupingConfig}
74+
/>
7075
)}
7176
{hasStreamlinedUI ? (
7277
feedbackComponent
@@ -81,11 +86,7 @@ export default function GroupingInfo({
8186
{hasPerformanceGrouping || isSuccess
8287
? variants.map((variant, index) => (
8388
<Fragment key={variant.key}>
84-
<GroupingVariant
85-
event={event}
86-
showGroupingConfig={showGroupingConfig}
87-
variant={variant}
88-
/>
89+
<GroupingVariant event={event} variant={variant} />
8990
{index < variants.length - 1 && <VariantDivider />}
9091
</Fragment>
9192
))

static/app/components/events/groupingInfo/groupingInfoSection.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,12 @@ export function EventGroupingInfoSection({
4040
initialCollapse
4141
>
4242
{!hasStreamlinedUI && (
43-
<GroupInfoSummary event={event} group={group} projectSlug={projectSlug} />
43+
<GroupInfoSummary
44+
event={event}
45+
group={group}
46+
projectSlug={projectSlug}
47+
showGroupingConfig={showGroupingConfig}
48+
/>
4449
)}
4550
{hasStreamlinedUI || isOpen ? (
4651
<LazyLoad

static/app/components/events/groupingInfo/groupingSummary.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import React from 'react';
2+
13
import {useEventGroupingInfo} from 'sentry/components/events/groupingInfo/useEventGroupingInfo';
24
import Placeholder from 'sentry/components/placeholder';
35
import {t} from 'sentry/locale';
@@ -8,10 +10,12 @@ export function GroupInfoSummary({
810
event,
911
group,
1012
projectSlug,
13+
showGroupingConfig,
1114
}: {
1215
event: Event;
1316
group: Group | undefined;
1417
projectSlug: string;
18+
showGroupingConfig: boolean;
1519
}) {
1620
const {groupInfo, isPending, hasPerformanceGrouping} = useEventGroupingInfo({
1721
event,
@@ -26,13 +30,28 @@ export function GroupInfoSummary({
2630
.join(', ')
2731
: t('nothing');
2832

33+
const groupingConfig =
34+
showGroupingConfig && groupInfo
35+
? (
36+
Object.values(groupInfo).find(
37+
variant => 'config' in variant && variant.config?.id
38+
) as any
39+
)?.config?.id
40+
: null;
41+
2942
if (isPending && !hasPerformanceGrouping) {
3043
return <Placeholder height="20px" style={{marginBottom: '20px'}} />;
3144
}
3245

3346
return (
3447
<p data-test-id="loaded-grouping-info">
3548
<strong>{t('Grouped by:')}</strong> {groupedBy}
49+
{groupingConfig && (
50+
<React.Fragment>
51+
<br />
52+
<strong>{t('Grouping Config:')}</strong> {groupingConfig}
53+
</React.Fragment>
54+
)}
3655
</p>
3756
);
3857
}

static/app/components/events/groupingInfo/groupingVariant.spec.tsx

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,7 @@ describe('Grouping Variant', () => {
5252
};
5353

5454
it('renders the span hashes for performance issues from event data', () => {
55-
render(
56-
<GroupingVariant
57-
showGroupingConfig={false}
58-
variant={performanceIssueVariant}
59-
event={event}
60-
/>
61-
);
55+
render(<GroupingVariant variant={performanceIssueVariant} event={event} />);
6256

6357
expect(
6458
within(screen.getByText('Parent Span Hashes').closest('tr') as HTMLElement)
@@ -78,13 +72,7 @@ describe('Grouping Variant', () => {
7872
});
7973

8074
it('renders grouping details for occurrence-backed performance issues', () => {
81-
render(
82-
<GroupingVariant
83-
showGroupingConfig={false}
84-
variant={performanceIssueVariant}
85-
event={occurrenceEvent}
86-
/>
87-
);
75+
render(<GroupingVariant variant={performanceIssueVariant} event={occurrenceEvent} />);
8876

8977
expect(
9078
within(screen.getByText('Parent Span Hashes').closest('tr') as HTMLElement)

static/app/components/events/groupingInfo/groupingVariant.tsx

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import {hasNonContributingComponent} from './utils';
2323

2424
interface GroupingVariantProps {
2525
event: Event;
26-
showGroupingConfig: boolean;
2726
variant: EventGroupVariant;
2827
}
2928

@@ -70,7 +69,7 @@ function addFingerprintInfo(data: VariantData, variant: EventGroupVariant) {
7069
}
7170
}
7271

73-
function GroupingVariant({event, showGroupingConfig, variant}: GroupingVariantProps) {
72+
function GroupingVariant({event, variant}: GroupingVariantProps) {
7473
const [showNonContributing, setShowNonContributing] = useState(false);
7574

7675
const getVariantData = (): [VariantData, EventGroupComponent | undefined] => {
@@ -105,10 +104,6 @@ function GroupingVariant({event, showGroupingConfig, variant}: GroupingVariantPr
105104
switch (variant.type) {
106105
case EventGroupVariantType.COMPONENT:
107106
component = variant.component;
108-
109-
if (showGroupingConfig && variant.config?.id) {
110-
data.push([t('Grouping Config'), variant.config.id]);
111-
}
112107
break;
113108
case EventGroupVariantType.CUSTOM_FINGERPRINT:
114109
addFingerprintInfo(data, variant);
@@ -119,9 +114,6 @@ function GroupingVariant({event, showGroupingConfig, variant}: GroupingVariantPr
119114
case EventGroupVariantType.SALTED_COMPONENT:
120115
component = variant.component;
121116
addFingerprintInfo(data, variant);
122-
if (showGroupingConfig && variant.config?.id) {
123-
data.push([t('Grouping Config'), variant.config.id]);
124-
}
125117
break;
126118
case EventGroupVariantType.PERFORMANCE_PROBLEM: {
127119
const spansToHashes = Object.fromEntries(

0 commit comments

Comments
 (0)