Browse Source

ref(insights): Simplify `useModuleURL` (#71061)

Keep it simple with a single `useModuleURL` hook that accepts a string.
This is a departure from our usual approach of using `ModuleName`, but
I'm going to replace `ModuleName` with a string union type soon anyway.
George Gritsouk 9 months ago
parent
commit
5ce5e7c2e6

+ 2 - 2
static/app/components/events/interfaces/llm-monitoring/llmMonitoringSection.tsx

@@ -12,7 +12,7 @@ import {
   TotalTokensUsedChart,
 } from 'sentry/views/llmMonitoring/llmMonitoringCharts';
 import * as ModuleLayout from 'sentry/views/performance/moduleLayout';
-import {useAIModuleURL} from 'sentry/views/performance/utils/useModuleURL';
+import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 import {useIndexedSpans} from 'sentry/views/starfish/queries/useIndexedSpans';
 import {type IndexedResponse, SpanIndexedField} from 'sentry/views/starfish/types';
 
@@ -30,7 +30,7 @@ export default function LLMMonitoringSection({event}: Props) {
     referrer: 'api.ai-pipelines.view',
     search: new MutableSearch(`trace:${traceId} id:"${spanId}"`),
   });
-  const moduleUrl = useAIModuleURL();
+  const moduleUrl = useModuleURL('ai');
   const aiPipelineGroup =
     data && (data[0] as IndexedResponse)?.[SpanIndexedField.SPAN_AI_PIPELINE_GROUP];
 

+ 2 - 2
static/app/views/llmMonitoring/llmMonitoringDetailsPage.tsx

@@ -24,7 +24,7 @@ import {BASE_URL} from 'sentry/views/llmMonitoring/settings';
 import {MetricReadout} from 'sentry/views/performance/metricReadout';
 import * as ModuleLayout from 'sentry/views/performance/moduleLayout';
 import {ModulePageProviders} from 'sentry/views/performance/modulePageProviders';
-import {useAIModuleURL} from 'sentry/views/performance/utils/useModuleURL';
+import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 import {useSpanMetrics} from 'sentry/views/starfish/queries/useDiscover';
 import {
   SpanFunction,
@@ -43,7 +43,7 @@ type Query = {
 };
 
 export function LLMMonitoringPage({params}: Props) {
-  const moduleURL = useAIModuleURL();
+  const moduleURL = useModuleURL('ai');
   const location = useLocation<Query>();
 
   const organization = useOrganization();

+ 2 - 2
static/app/views/llmMonitoring/pipelinesTable.tsx

@@ -25,7 +25,7 @@ import {decodeScalar, decodeSorts} from 'sentry/utils/queryString';
 import {MutableSearch} from 'sentry/utils/tokenizeSearch';
 import {useLocation} from 'sentry/utils/useLocation';
 import useOrganization from 'sentry/utils/useOrganization';
-import {useAIModuleURL} from 'sentry/views/performance/utils/useModuleURL';
+import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 import {renderHeadCell} from 'sentry/views/starfish/components/tableCells/renderHeadCell';
 import {useSpanMetrics} from 'sentry/views/starfish/queries/useDiscover';
 import type {SpanMetricsResponse} from 'sentry/views/starfish/types';
@@ -91,7 +91,7 @@ export function isAValidSort(sort: Sort): sort is ValidSort {
 
 export function PipelinesTable() {
   const location = useLocation();
-  const moduleURL = useAIModuleURL();
+  const moduleURL = useModuleURL('ai');
 
   const organization = useOrganization();
   const cursor = decodeScalar(location.query?.[QueryParameterNames.SPANS_CURSOR]);

+ 3 - 6
static/app/views/performance/browser/resources/resourceSummaryPage/index.tsx

@@ -27,10 +27,7 @@ import RenderBlockingSelector from 'sentry/views/performance/browser/resources/s
 import {ResourceSpanOps} from 'sentry/views/performance/browser/resources/shared/types';
 import {useResourceModuleFilters} from 'sentry/views/performance/browser/resources/utils/useResourceFilters';
 import {ModulePageProviders} from 'sentry/views/performance/modulePageProviders';
-import {
-  useResourceModuleURL,
-  useWebVitalsModuleURL,
-} from 'sentry/views/performance/utils/useModuleURL';
+import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 import {useSpanMetrics} from 'sentry/views/starfish/queries/useDiscover';
 import {ModuleName, SpanMetricsField} from 'sentry/views/starfish/types';
 import {SampleList} from 'sentry/views/starfish/views/spanSummaryPage/sampleList';
@@ -46,8 +43,8 @@ const {
 } = SpanMetricsField;
 
 function ResourceSummary() {
-  const resourcesModuleURL = useResourceModuleURL();
-  const webVitalsModuleURL = useWebVitalsModuleURL();
+  const resourcesModuleURL = useModuleURL('resource');
+  const webVitalsModuleURL = useModuleURL('vital');
   const organization = useOrganization();
   const {groupId} = useParams();
   const filters = useResourceModuleFilters();

+ 2 - 2
static/app/views/performance/browser/webVitals/components/performanceScoreRingWithTooltips.tsx

@@ -16,7 +16,7 @@ import type {
   ProjectScore,
   WebVitals,
 } from 'sentry/views/performance/browser/webVitals/utils/types';
-import {useWebVitalsModuleURL} from 'sentry/views/performance/utils/useModuleURL';
+import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 
 import {ORDER_WITH_INP} from '../performanceScoreChart';
 
@@ -84,7 +84,7 @@ function WebVitalLabel({
   inPerformanceWidget,
   projectData,
 }: WebVitalLabelProps) {
-  const moduleURL = useWebVitalsModuleURL();
+  const moduleURL = useModuleURL('vital');
   const xOffset = webVitalLabelCoordinates?.[webVital]?.x ?? 0;
   const yOffset = webVitalLabelCoordinates?.[webVital]?.y ?? 0;
   const webvitalInfo =

+ 2 - 2
static/app/views/performance/browser/webVitals/pageOverview.tsx

@@ -48,7 +48,7 @@ import {
   StyledAlert,
 } from 'sentry/views/performance/browser/webVitals/webVitalsLandingPage';
 import {ModulePageProviders} from 'sentry/views/performance/modulePageProviders';
-import {useWebVitalsModuleURL} from 'sentry/views/performance/utils/useModuleURL';
+import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 
 import {transactionSummaryRouteWithQuery} from '../../transactionSummary/utils';
 
@@ -77,7 +77,7 @@ function getCurrentTabSelection(selectedTab) {
 }
 
 export function PageOverview() {
-  const moduleURL = useWebVitalsModuleURL();
+  const moduleURL = useModuleURL('vital');
   const organization = useOrganization();
   const location = useLocation();
   const {projects} = useProjects();

+ 2 - 2
static/app/views/performance/cache/tables/transactionCell.tsx

@@ -2,7 +2,7 @@ import * as qs from 'query-string';
 
 import Link from 'sentry/components/links/link';
 import {useLocation} from 'sentry/utils/useLocation';
-import {useCacheModuleURL} from 'sentry/views/performance/utils/useModuleURL';
+import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 import {OverflowEllipsisTextContainer} from 'sentry/views/starfish/components/textAlign';
 
 interface Props {
@@ -12,7 +12,7 @@ interface Props {
 }
 
 export function TransactionCell({project, transaction}: Props) {
-  const moduleURL = useCacheModuleURL();
+  const moduleURL = useModuleURL('cache');
   const location = useLocation();
 
   if (!transaction) {

+ 2 - 2
static/app/views/performance/database/databaseSpanSummaryPage.tsx

@@ -26,7 +26,7 @@ import {useSelectedDurationAggregate} from 'sentry/views/performance/database/us
 import {MetricReadout} from 'sentry/views/performance/metricReadout';
 import * as ModuleLayout from 'sentry/views/performance/moduleLayout';
 import {ModulePageProviders} from 'sentry/views/performance/modulePageProviders';
-import {useDatabaseModuleURL} from 'sentry/views/performance/utils/useModuleURL';
+import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 import {useSynchronizeCharts} from 'sentry/views/starfish/components/chart';
 import {DatabaseSpanDescription} from 'sentry/views/starfish/components/spanDescription';
 import {getTimeSpentExplanation} from 'sentry/views/starfish/components/tableCells/timeSpentCell';
@@ -48,7 +48,7 @@ type Query = {
 type Props = RouteComponentProps<Query, {groupId: string}>;
 
 export function DatabaseSpanSummaryPage({params}: Props) {
-  const moduleURL = useDatabaseModuleURL();
+  const moduleURL = useModuleURL('db');
   const organization = useOrganization();
   const location = useLocation<Query>();
 

+ 2 - 2
static/app/views/performance/database/queryTransactionsTable.tsx

@@ -15,7 +15,7 @@ import {getFieldRenderer} from 'sentry/utils/discover/fieldRenderers';
 import type {Sort} from 'sentry/utils/discover/fields';
 import {useLocation} from 'sentry/utils/useLocation';
 import useOrganization from 'sentry/utils/useOrganization';
-import {useDatabaseModuleURL} from 'sentry/views/performance/utils/useModuleURL';
+import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 import {renderHeadCell} from 'sentry/views/starfish/components/tableCells/renderHeadCell';
 import {OverflowEllipsisTextContainer} from 'sentry/views/starfish/components/textAlign';
 import type {SpanMetricsResponse} from 'sentry/views/starfish/types';
@@ -93,7 +93,7 @@ export function QueryTransactionsTable({
   sort,
   span,
 }: Props) {
-  const moduleURL = useDatabaseModuleURL();
+  const moduleURL = useModuleURL('db');
   const location = useLocation();
   const organization = useOrganization();
 

+ 2 - 2
static/app/views/performance/http/httpDomainSummaryPage.tsx

@@ -46,7 +46,7 @@ import {
 import {MetricReadout} from 'sentry/views/performance/metricReadout';
 import * as ModuleLayout from 'sentry/views/performance/moduleLayout';
 import {ModulePageProviders} from 'sentry/views/performance/modulePageProviders';
-import {useRequestsModuleURL} from 'sentry/views/performance/utils/useModuleURL';
+import {useModuleURL} from 'sentry/views/performance/utils/useModuleURL';
 import {useSynchronizeCharts} from 'sentry/views/starfish/components/chart';
 import {getTimeSpentExplanation} from 'sentry/views/starfish/components/tableCells/timeSpentCell';
 import {useSpanMetrics} from 'sentry/views/starfish/queries/useDiscover';
@@ -62,7 +62,7 @@ type Query = {
 };
 
 export function HTTPDomainSummaryPage() {
-  const moduleURL = useRequestsModuleURL();
+  const moduleURL = useModuleURL('http');
   const location = useLocation<Query>();
   const organization = useOrganization();
   const {projects} = useProjects();

Some files were not shown because too many files changed in this diff