123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import {useMemo} from 'react';
- import type {Group, Project} from 'sentry/types';
- import {getMessage} from 'sentry/utils/events';
- import {useLocation} from 'sentry/utils/useLocation';
- import useOrganization from 'sentry/utils/useOrganization';
- import {Tab} from 'sentry/views/issueDetails/types';
- import {ReprocessingStatus} from 'sentry/views/issueDetails/utils';
- import {ShortIdBreadcrumb} from './shortIdBreadcrumb';
- interface IssueDetailsHeaderProps {
- baseUrl: string;
- group: Group;
- groupReprocessingStatus: ReprocessingStatus;
- project: Project;
- }
- export function useIssueDetailsHeader({
- group,
- groupReprocessingStatus,
- baseUrl,
- project,
- }: IssueDetailsHeaderProps) {
- const location = useLocation();
- const organization = useOrganization();
- const {sort: _sort, ...query} = location.query;
- const disabledTabs = useMemo(() => {
- if (groupReprocessingStatus === ReprocessingStatus.REPROCESSING) {
- return [
- Tab.ACTIVITY,
- Tab.USER_FEEDBACK,
- Tab.ATTACHMENTS,
- Tab.EVENTS,
- Tab.MERGED,
- Tab.SIMILAR_ISSUES,
- Tab.TAGS,
- ];
- }
- if (groupReprocessingStatus === ReprocessingStatus.REPROCESSED_AND_HASNT_EVENT) {
- return [
- Tab.DETAILS,
- Tab.ATTACHMENTS,
- Tab.EVENTS,
- Tab.MERGED,
- Tab.SIMILAR_ISSUES,
- Tab.TAGS,
- Tab.USER_FEEDBACK,
- ];
- }
- return [];
- }, [groupReprocessingStatus]);
- const disableActions = !!disabledTabs.length;
- const message = getMessage(group);
- const eventRoute = useMemo(() => {
- return {
- pathname: `${baseUrl}events/`,
- query,
- };
- }, [query, baseUrl]);
- const shortIdBreadcrumb = (
- <ShortIdBreadcrumb organization={organization} project={project} group={group} />
- );
- let className = 'group-detail';
- if (group.hasSeen) {
- className += ' hasSeen';
- }
- if (group.status === 'resolved') {
- className += ' isResolved';
- }
- return {
- disabledTabs,
- message,
- eventRoute,
- disableActions,
- shortIdBreadcrumb,
- className,
- };
- }
|