Skip to content

Commit e398f48

Browse files
priscilawebdevClaude Opus 4.6
andcommitted
ref(profiling): extract shared LayoutPageWithHiddenFooter
Deduplicate the identical styled component from four profiling files into a single export in profiling/utils.tsx. Co-Authored-By: Claude Opus 4.6 <noreply@example.com>
1 parent 1af0357 commit e398f48

File tree

5 files changed

+16
-29
lines changed

5 files changed

+16
-29
lines changed

static/app/views/profiling/continuousProfileProvider.tsx

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import {useMemo, useState} from 'react';
22
import {Outlet} from 'react-router-dom';
3-
import styled from '@emotion/styled';
43

5-
import * as Layout from 'sentry/components/layouts/thirds';
64
import {ContinuousProfileHeader} from 'sentry/components/profiling/continuousProfileHeader';
75
import type {RequestState} from 'sentry/types/core';
86
import type {EventTransaction} from 'sentry/types/event';
@@ -11,6 +9,7 @@ import {decodeScalar} from 'sentry/utils/queryString';
119
import {useLocation} from 'sentry/utils/useLocation';
1210
import {useOrganization} from 'sentry/utils/useOrganization';
1311
import {useParams} from 'sentry/utils/useParams';
12+
import {LayoutPageWithHiddenFooter} from 'sentry/views/profiling/utils';
1413

1514
import {ContinuousProfileProvider, ProfileTransactionContext} from './profilesProvider';
1615

@@ -79,9 +78,3 @@ export default function ProfileAndTransactionProvider(): React.ReactElement {
7978
</ContinuousProfileProvider>
8079
);
8180
}
82-
83-
const LayoutPageWithHiddenFooter = styled(Layout.Page)`
84-
~ footer {
85-
display: none;
86-
}
87-
`;

static/app/views/profiling/differentialFlamegraph.tsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {vec2} from 'gl-matrix';
66

77
import {addErrorMessage} from 'sentry/actionCreators/indicator';
88
import Feature from 'sentry/components/acl/feature';
9-
import * as Layout from 'sentry/components/layouts/thirds';
109
import {usePageFilters} from 'sentry/components/pageFilters/usePageFilters';
1110
import {DifferentialFlamegraphLayout} from 'sentry/components/profiling/flamegraph/differentialFlamegraphLayout';
1211
import {FlamegraphContextMenu} from 'sentry/components/profiling/flamegraph/flamegraphContextMenu';
@@ -42,6 +41,7 @@ import {FlamegraphRendererWebGL} from 'sentry/utils/profiling/renderers/flamegra
4241
import {Rect} from 'sentry/utils/profiling/speedscope';
4342
import {useLocation} from 'sentry/utils/useLocation';
4443
import {LOADING_PROFILE_GROUP} from 'sentry/views/profiling/profileGroupProvider';
44+
import {LayoutPageWithHiddenFooter} from 'sentry/views/profiling/utils';
4545

4646
const PROFILE_TYPE = 'differential aggregate flamegraph' as const;
4747

@@ -351,12 +351,6 @@ const DifferentialFlamegraphContainer = styled('div')`
351351
flex: 1;
352352
`;
353353

354-
const LayoutPageWithHiddenFooter = styled(Layout.Page)`
355-
~ footer {
356-
display: none;
357-
}
358-
`;
359-
360354
function DifferentialFlamegraphWithProviders() {
361355
return (
362356
<LayoutPageWithHiddenFooter>

static/app/views/profiling/profileSummary/index.tsx

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ import {
6969
import {ProfilesSummaryChart} from 'sentry/views/profiling/landing/profilesSummaryChart';
7070
import {ProfileGroupProvider} from 'sentry/views/profiling/profileGroupProvider';
7171
import {ProfilesTable} from 'sentry/views/profiling/profileSummary/profilesTable';
72+
import {LayoutPageWithHiddenFooter} from 'sentry/views/profiling/utils';
7273

7374
import {MostRegressedProfileFunctions} from './regressedProfileFunctions';
7475
import {SlowestProfileFunctions} from './slowestProfileFunctions';
@@ -632,12 +633,6 @@ const ProfileVisualizationContainer = styled('div')<{hideRegressions}>`
632633
flex: 1 1 100%;
633634
`;
634635

635-
const LayoutPageWithHiddenFooter = styled(Layout.Page)`
636-
~ footer {
637-
display: none;
638-
}
639-
`;
640-
641636
const ProfileSummaryContainer = styled('div')`
642637
display: flex;
643638
flex-direction: column;

static/app/views/profiling/transactionProfileProvider.tsx

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
import {useState} from 'react';
22
import {Outlet} from 'react-router-dom';
3-
import styled from '@emotion/styled';
43

5-
import * as Layout from 'sentry/components/layouts/thirds';
64
import {ProfileHeader} from 'sentry/components/profiling/profileHeader';
75
import type {RequestState} from 'sentry/types/core';
86
import type {EventTransaction} from 'sentry/types/event';
97
import {isSchema, isSentrySampledProfile} from 'sentry/utils/profiling/guards/profile';
108
import {useSentryEvent} from 'sentry/utils/profiling/hooks/useSentryEvent';
119
import {useOrganization} from 'sentry/utils/useOrganization';
1210
import {useParams} from 'sentry/utils/useParams';
11+
import {LayoutPageWithHiddenFooter} from 'sentry/views/profiling/utils';
1312

1413
import {ProfileTransactionContext, TransactionProfileProvider} from './profilesProvider';
1514

@@ -62,9 +61,3 @@ export default function ProfileAndTransactionProvider(): React.ReactElement {
6261
</TransactionProfileProvider>
6362
);
6463
}
65-
66-
const LayoutPageWithHiddenFooter = styled(Layout.Page)`
67-
~ footer {
68-
display: none;
69-
}
70-
`;

static/app/views/profiling/utils.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
1+
import styled from '@emotion/styled';
2+
3+
import * as Layout from 'sentry/components/layouts/thirds';
14
import {
25
isContinuousProfileReference,
36
isTransactionProfileReference,
47
} from 'sentry/utils/profiling/guards/profile';
58

9+
// The footer component is a sibling of this div.
10+
// Remove it so the flamegraph can take up the
11+
// entire screen.
12+
export const LayoutPageWithHiddenFooter = styled(Layout.Page)`
13+
~ footer {
14+
display: none;
15+
}
16+
`;
17+
618
export function requestAnimationFrameTimeout(cb: () => void, timeout: number) {
719
const rafId = {current: 0};
820
const start = performance.now();

0 commit comments

Comments
 (0)