|
@@ -49,12 +49,13 @@ import useProjects from 'sentry/utils/useProjects';
|
|
|
import {useRoutes} from 'sentry/utils/useRoutes';
|
|
|
import {normalizeUrl} from 'sentry/utils/withDomainRequired';
|
|
|
import {getTraceDetailsUrl} from 'sentry/views/performance/traceDetails/utils';
|
|
|
-import {
|
|
|
- generateReplayLink,
|
|
|
- transactionSummaryRouteWithQuery,
|
|
|
-} from 'sentry/views/performance/transactionSummary/utils';
|
|
|
+import {generateReplayLink} from 'sentry/views/performance/transactionSummary/utils';
|
|
|
|
|
|
-import {getExpandedResults, pushEventViewToLocation} from '../utils';
|
|
|
+import {
|
|
|
+ getExpandedResults,
|
|
|
+ getTargetForTransactionSummaryLink,
|
|
|
+ pushEventViewToLocation,
|
|
|
+} from '../utils';
|
|
|
|
|
|
import {QuickContextHoverWrapper} from './quickContext/quickContextWrapper';
|
|
|
import {ContextType} from './quickContext/utils';
|
|
@@ -320,6 +321,20 @@ function TableView(props: TableViewProps) {
|
|
|
{idLink}
|
|
|
</QuickContextHoverWrapper>
|
|
|
);
|
|
|
+ } else if (columnKey === 'transaction' && dataRow.transaction) {
|
|
|
+ cell = (
|
|
|
+ <StyledLink
|
|
|
+ data-test-id="tableView-transaction-link"
|
|
|
+ to={getTargetForTransactionSummaryLink(
|
|
|
+ dataRow,
|
|
|
+ organization,
|
|
|
+ projects,
|
|
|
+ eventView
|
|
|
+ )}
|
|
|
+ >
|
|
|
+ {cell}
|
|
|
+ </StyledLink>
|
|
|
+ );
|
|
|
} else if (columnKey === 'trace') {
|
|
|
const dateSelection = eventView.normalizeDateSelection(location);
|
|
|
if (dataRow.trace) {
|
|
@@ -468,21 +483,14 @@ function TableView(props: TableViewProps) {
|
|
|
|
|
|
switch (action) {
|
|
|
case Actions.TRANSACTION: {
|
|
|
- const maybeProject = projects.find(
|
|
|
- project =>
|
|
|
- project.slug &&
|
|
|
- [dataRow['project.name'], dataRow.project].includes(project.slug)
|
|
|
+ const target = getTargetForTransactionSummaryLink(
|
|
|
+ dataRow,
|
|
|
+ organization,
|
|
|
+ projects,
|
|
|
+ nextView
|
|
|
);
|
|
|
- const projectID = maybeProject ? [maybeProject.id] : undefined;
|
|
|
-
|
|
|
- const next = transactionSummaryRouteWithQuery({
|
|
|
- orgSlug: organization.slug,
|
|
|
- transaction: String(value),
|
|
|
- projectID,
|
|
|
- query: nextView.getPageFiltersQuery(),
|
|
|
- });
|
|
|
|
|
|
- browserHistory.push(normalizeUrl(next));
|
|
|
+ browserHistory.push(normalizeUrl(target));
|
|
|
return;
|
|
|
}
|
|
|
case Actions.RELEASE: {
|
|
@@ -642,7 +650,7 @@ const StyledTooltip = styled(Tooltip)`
|
|
|
max-width: max-content;
|
|
|
`;
|
|
|
|
|
|
-const StyledLink = styled(Link)`
|
|
|
+export const StyledLink = styled(Link)`
|
|
|
& div {
|
|
|
display: inline;
|
|
|
}
|