import {useCallback} from 'react'; import styled from '@emotion/styled'; import * as Layout from 'sentry/components/layouts/thirds'; import LoadingError from 'sentry/components/loadingError'; import LoadingIndicator from 'sentry/components/loadingIndicator'; import {space} from 'sentry/styles/space'; import type {Group} from 'sentry/types/group'; import {browserHistory} from 'sentry/utils/browserHistory'; import {ISSUE_PROPERTY_FIELDS} from 'sentry/utils/fields'; import normalizeUrl from 'sentry/utils/url/normalizeUrl'; import useCleanQueryParamsOnRouteLeave from 'sentry/utils/useCleanQueryParamsOnRouteLeave'; import {useLocation} from 'sentry/utils/useLocation'; import useOrganization from 'sentry/utils/useOrganization'; import {useParams} from 'sentry/utils/useParams'; import {EventList} from 'sentry/views/issueDetails/streamline/eventList'; import {EventSearch} from 'sentry/views/issueDetails/streamline/eventSearch'; import {useGroup} from 'sentry/views/issueDetails/useGroup'; import { useEnvironmentsFromUrl, useHasStreamlinedUI, } from 'sentry/views/issueDetails/utils'; import AllEventsTable from './allEventsTable'; export const ALL_EVENTS_EXCLUDED_TAGS = [ 'environment', 'performance.issue_ids', 'transaction.op', 'transaction.status', ...ISSUE_PROPERTY_FIELDS, ]; interface GroupEventsProps { group: Group; } function GroupEvents({group}: GroupEventsProps) { const location = useLocation(); const environments = useEnvironmentsFromUrl(); const params = useParams<{groupId: string}>(); const organization = useOrganization(); useCleanQueryParamsOnRouteLeave({ fieldsToClean: ['cursor', 'query'], shouldClean: newLocation => newLocation.pathname.includes(`/issues/${params.groupId}/`), }); const handleSearch = useCallback( (query: string) => browserHistory.push( normalizeUrl({ pathname: `/organizations/${organization.slug}/issues/${params.groupId}/events/`, query: {...location.query, query}, }) ), [location, organization, params.groupId] ); const query = (location.query?.query ?? '') as string; return ( ); } const AllEventsFilters = styled('div')` margin-bottom: ${space(2)}; `; // TODO(streamlined-ui): Remove this file completely and change rotue to new events list function IssueEventsList() { const hasStreamlinedUI = useHasStreamlinedUI(); const params = useParams<{groupId: string}>(); const { data: group, isPending: isGroupPending, isError: isGroupError, refetch: refetchGroup, } = useGroup({groupId: params.groupId}); if (isGroupPending) { return ; } if (isGroupError) { return ; } if (hasStreamlinedUI) { return ; } return ; } export default IssueEventsList;