Skip to content

Commit 15f0d52

Browse files
authored
feat(issues): Switch back from drawers to routes (#79731)
1 parent 7cfcaf3 commit 15f0d52

File tree

8 files changed

+236
-260
lines changed

8 files changed

+236
-260
lines changed

static/app/views/issueDetails/groupDetails.tsx

Lines changed: 10 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,11 @@ import useRouter from 'sentry/utils/useRouter';
5757
import {useUser} from 'sentry/utils/useUser';
5858
import GroupHeader from 'sentry/views/issueDetails//header';
5959
import {ERROR_TYPES} from 'sentry/views/issueDetails/constants';
60-
import {useGroupEventAttachmentsDrawer} from 'sentry/views/issueDetails/groupEventAttachments/useGroupEventAttachmentsDrawer';
61-
import GroupEventDetails from 'sentry/views/issueDetails/groupEventDetails';
6260
import {useGroupTagsDrawer} from 'sentry/views/issueDetails/groupTags/useGroupTagsDrawer';
6361
import SampleEventAlert from 'sentry/views/issueDetails/sampleEventAlert';
64-
import StreamlinedGroupHeader from 'sentry/views/issueDetails/streamline/header';
62+
import {GroupDetailsLayout} from 'sentry/views/issueDetails/streamline/groupDetailsLayout';
6563
import {useMergedIssuesDrawer} from 'sentry/views/issueDetails/streamline/useMergedIssuesDrawer';
66-
import {useReplaysDrawer} from 'sentry/views/issueDetails/streamline/useReplaysDrawer';
6764
import {useSimilarIssuesDrawer} from 'sentry/views/issueDetails/streamline/useSimilarIssuesDrawer';
68-
import {useUserFeedbackDrawer} from 'sentry/views/issueDetails/streamline/useUserFeedbackDrawer';
6965
import {Tab} from 'sentry/views/issueDetails/types';
7066
import {makeFetchGroupQueryKey, useGroup} from 'sentry/views/issueDetails/useGroup';
7167
import {useGroupDetailsRoute} from 'sentry/views/issueDetails/useGroupDetailsRoute';
@@ -622,14 +618,7 @@ function GroupDetailsContent({
622618
refetchData,
623619
}: GroupDetailsContentProps) {
624620
const organization = useOrganization();
625-
const router = useRouter();
626-
const {openAttachmentDrawer} = useGroupEventAttachmentsDrawer({
627-
group,
628-
project,
629-
});
630621
const {openTagsDrawer} = useGroupTagsDrawer({group});
631-
const {openUserFeedbackDrawer} = useUserFeedbackDrawer({group, project});
632-
const {openReplaysDrawer} = useReplaysDrawer({group, project});
633622
const {openSimilarIssuesDrawer} = useSimilarIssuesDrawer({group, project});
634623
const {openMergedIssuesDrawer} = useMergedIssuesDrawer({group, project});
635624
const {isDrawerOpen} = useDrawer();
@@ -645,14 +634,8 @@ function GroupDetailsContent({
645634
return;
646635
}
647636

648-
if (currentTab === Tab.ATTACHMENTS) {
649-
openAttachmentDrawer();
650-
} else if (currentTab === Tab.TAGS) {
637+
if (currentTab === Tab.TAGS) {
651638
openTagsDrawer();
652-
} else if (currentTab === Tab.USER_FEEDBACK) {
653-
openUserFeedbackDrawer();
654-
} else if (currentTab === Tab.REPLAYS) {
655-
openReplaysDrawer();
656639
} else if (currentTab === Tab.SIMILAR_ISSUES) {
657640
openSimilarIssuesDrawer();
658641
} else if (currentTab === Tab.MERGED) {
@@ -662,10 +645,7 @@ function GroupDetailsContent({
662645
currentTab,
663646
hasStreamlinedUI,
664647
isDrawerOpen,
665-
openAttachmentDrawer,
666648
openTagsDrawer,
667-
openUserFeedbackDrawer,
668-
openReplaysDrawer,
669649
openSimilarIssuesDrawer,
670650
openMergedIssuesDrawer,
671651
]);
@@ -685,30 +665,14 @@ function GroupDetailsContent({
685665
};
686666

687667
return hasStreamlinedUI ? (
688-
<div>
689-
<StreamlinedGroupHeader
690-
event={event}
691-
group={group}
692-
project={project}
693-
groupReprocessingStatus={groupReprocessingStatus}
694-
/>
695-
<GroupEventDetails
696-
location={router.location}
697-
route={router.routes.at(-1)!}
698-
router={router}
699-
routes={router.routes}
700-
routeParams={router.params}
701-
params={router.params}
702-
organization={organization}
703-
event={event!}
704-
group={group}
705-
project={project}
706-
loadingEvent={loadingEvent}
707-
eventError={eventError}
708-
groupReprocessingStatus={groupReprocessingStatus}
709-
onRetry={refetchData}
710-
/>
711-
</div>
668+
<GroupDetailsLayout
669+
group={group}
670+
event={event ?? undefined}
671+
project={project}
672+
groupReprocessingStatus={groupReprocessingStatus}
673+
>
674+
{isValidElement(children) ? cloneElement(children, childProps) : children}
675+
</GroupDetailsLayout>
712676
) : (
713677
<Tabs
714678
value={currentTab}

static/app/views/issueDetails/groupEventDetails/groupEventDetails.tsx

Lines changed: 6 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,14 @@ import {css} from '@emotion/react';
33
import styled from '@emotion/styled';
44
import isEqual from 'lodash/isEqual';
55

6-
import Feature from 'sentry/components/acl/feature';
76
import ArchivedBox from 'sentry/components/archivedBox';
8-
import ErrorBoundary from 'sentry/components/errorBoundary';
97
import GroupEventDetailsLoadingError from 'sentry/components/errors/groupEventDetailsLoadingError';
108
import {withMeta} from 'sentry/components/events/meta/metaProxy';
11-
import {GroupSummary} from 'sentry/components/group/groupSummary';
129
import HookOrDefault from 'sentry/components/hookOrDefault';
1310
import * as Layout from 'sentry/components/layouts/thirds';
1411
import LoadingIndicator from 'sentry/components/loadingIndicator';
1512
import {TransactionProfileIdProvider} from 'sentry/components/profiling/transactionProfileIdProvider';
1613
import ResolutionBox from 'sentry/components/resolutionBox';
17-
import {t} from 'sentry/locale';
1814
import useSentryAppComponentsData from 'sentry/stores/useSentryAppComponentsData';
1915
import {space} from 'sentry/styles/space';
2016
import type {Event} from 'sentry/types/event';
@@ -28,14 +24,9 @@ import {getConfigForIssueType} from 'sentry/utils/issueTypeConfig';
2824
import {VisuallyCompleteWithData} from 'sentry/utils/performanceForSentry';
2925
import normalizeUrl from 'sentry/utils/url/normalizeUrl';
3026
import usePrevious from 'sentry/utils/usePrevious';
31-
import {useSyncedLocalStorageState} from 'sentry/utils/useSyncedLocalStorageState';
3227
import GroupEventDetailsContent from 'sentry/views/issueDetails/groupEventDetails/groupEventDetailsContent';
3328
import GroupEventHeader from 'sentry/views/issueDetails/groupEventHeader';
3429
import GroupSidebar from 'sentry/views/issueDetails/groupSidebar';
35-
import {EventDetailsHeader} from 'sentry/views/issueDetails/streamline/eventDetailsHeader';
36-
import {IssueEventNavigation} from 'sentry/views/issueDetails/streamline/eventNavigation';
37-
import {useEventQuery} from 'sentry/views/issueDetails/streamline/eventSearch';
38-
import StreamlinedSidebar from 'sentry/views/issueDetails/streamline/sidebar';
3930

4031
import ReprocessingProgress from '../reprocessingProgress';
4132
import {
@@ -80,9 +71,6 @@ function GroupEventDetails(props: GroupEventDetailsProps) {
8071
const prevEnvironment = usePrevious(environments);
8172
const prevEvent = usePrevious(event);
8273
const hasStreamlinedUI = useHasStreamlinedUI();
83-
const searchQuery = useEventQuery({group});
84-
85-
const [sidebarOpen, _] = useSyncedLocalStorageState('issue-details-sidebar-open', true);
8674

8775
// load the data
8876
useSentryAppComponentsData({projectId});
@@ -168,6 +156,7 @@ function GroupEventDetails(props: GroupEventDetailsProps) {
168156

169157
const eventWithMeta = withMeta(event);
170158
const issueTypeConfig = getConfigForIssueType(group, project);
159+
const LayoutBody = hasStreamlinedUI ? 'div' : StyledLayoutBody;
171160
const MainLayoutComponent = hasStreamlinedUI ? 'div' : StyledLayoutMain;
172161

173162
return (
@@ -181,11 +170,7 @@ function GroupEventDetails(props: GroupEventDetailsProps) {
181170
hasData={!loadingEvent && !eventError && defined(eventWithMeta)}
182171
isLoading={loadingEvent}
183172
>
184-
<StyledLayoutBody
185-
data-test-id="group-event-details"
186-
hasStreamlinedUi={hasStreamlinedUI}
187-
sidebarOpen={sidebarOpen}
188-
>
173+
<LayoutBody data-test-id="group-event-details">
189174
{groupReprocessingStatus === ReprocessingStatus.REPROCESSING ? (
190175
<ReprocessingProgress
191176
totalEvents={
@@ -208,42 +193,9 @@ function GroupEventDetails(props: GroupEventDetailsProps) {
208193
project={project}
209194
/>
210195
)}
211-
{hasStreamlinedUI ? (
212-
<EventDetailsHeader event={event} group={group} />
213-
) : null}
214-
{hasStreamlinedUI ? (
215-
<GroupContent>
216-
<PageErrorBoundary
217-
mini
218-
message={t('There was an error loading the issue summary')}
219-
>
220-
<Feature features={['organizations:ai-summary']}>
221-
<GroupSummary
222-
groupId={group.id}
223-
groupCategory={group.issueCategory}
224-
/>
225-
</Feature>
226-
</PageErrorBoundary>
227-
<div>
228-
<IssueEventNavigation
229-
event={event}
230-
group={group}
231-
query={searchQuery}
232-
/>
233-
{renderContent()}
234-
</div>
235-
</GroupContent>
236-
) : (
237-
<GroupContent>{renderContent()}</GroupContent>
238-
)}
196+
{renderContent()}
239197
</MainLayoutComponent>
240-
{hasStreamlinedUI ? (
241-
sidebarOpen ? (
242-
<StyledLayoutSide hasStreamlinedUi={hasStreamlinedUI}>
243-
<StreamlinedSidebar group={group} event={event} project={project} />
244-
</StyledLayoutSide>
245-
) : null
246-
) : (
198+
{hasStreamlinedUI ? null : (
247199
<StyledLayoutSide hasStreamlinedUi={hasStreamlinedUI}>
248200
<GroupSidebar
249201
organization={organization}
@@ -256,31 +208,18 @@ function GroupEventDetails(props: GroupEventDetailsProps) {
256208
)}
257209
</Fragment>
258210
)}
259-
</StyledLayoutBody>
211+
</LayoutBody>
260212
</VisuallyCompleteWithData>
261213
</TransactionProfileIdProvider>
262214
);
263215
}
264216

265-
const StyledLayoutBody = styled(Layout.Body)<{
266-
hasStreamlinedUi: boolean;
267-
sidebarOpen: boolean;
268-
}>`
217+
const StyledLayoutBody = styled(Layout.Body)`
269218
/* Makes the borders align correctly */
270219
padding: 0 !important;
271220
@media (min-width: ${p => p.theme.breakpoints.large}) {
272221
align-content: stretch;
273222
}
274-
275-
${p =>
276-
p.hasStreamlinedUi &&
277-
css`
278-
min-height: 100vh;
279-
@media (min-width: ${p.theme.breakpoints.large}) {
280-
gap: ${space(1.5)};
281-
display: ${p.sidebarOpen ? 'grid' : 'block'};
282-
}
283-
`}
284223
`;
285224

286225
const GroupStatusBannerWrapper = styled('div')`
@@ -300,20 +239,6 @@ const StyledLayoutMain = styled(Layout.Main)`
300239
}
301240
`;
302241

303-
const GroupContent = styled(Layout.Main)`
304-
background: ${p => p.theme.backgroundSecondary};
305-
display: flex;
306-
flex-direction: column;
307-
padding: ${space(1.5)};
308-
gap: ${space(1.5)};
309-
@media (min-width: ${p => p.theme.breakpoints.large}) {
310-
border-right: 1px solid ${p => p.theme.translucentBorder};
311-
}
312-
@media (max-width: ${p => p.theme.breakpoints.large}) {
313-
border-bottom-width: 1px solid ${p => p.theme.translucentBorder};
314-
}
315-
`;
316-
317242
const StyledLayoutSide = styled(Layout.Side)<{hasStreamlinedUi: boolean}>`
318243
${p =>
319244
p.hasStreamlinedUi
@@ -333,9 +258,4 @@ const StyledLayoutSide = styled(Layout.Side)<{hasStreamlinedUi: boolean}>`
333258
}
334259
`;
335260

336-
const PageErrorBoundary = styled(ErrorBoundary)`
337-
margin: 0;
338-
border: 1px solid ${p => p.theme.translucentBorder};
339-
`;
340-
341261
export default GroupEventDetails;

static/app/views/issueDetails/streamline/eventDetails.spec.tsx

Lines changed: 0 additions & 94 deletions
This file was deleted.

0 commit comments

Comments
 (0)