diff --git a/static/app/views/explore/contexts/pageParamsContext/title.tsx b/static/app/views/explore/contexts/pageParamsContext/title.tsx deleted file mode 100644 index 83222de84e657d..00000000000000 --- a/static/app/views/explore/contexts/pageParamsContext/title.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import type {Location} from 'history'; - -import {decodeScalar} from 'sentry/utils/queryString'; - -export function getTitleFromLocation(location: Location) { - return decodeScalar(location.query.title); -} diff --git a/static/app/views/explore/hooks/useAnalytics.tsx b/static/app/views/explore/hooks/useAnalytics.tsx index 8d05517bda1c83..29ab450df304f3 100644 --- a/static/app/views/explore/hooks/useAnalytics.tsx +++ b/static/app/views/explore/hooks/useAnalytics.tsx @@ -8,6 +8,7 @@ import {trackAnalytics} from 'sentry/utils/analytics'; import type {LogsAnalyticsPageSource} from 'sentry/utils/analytics/logsAnalyticsEvent'; import type {Sort} from 'sentry/utils/discover/fields'; import {DiscoverDatasets} from 'sentry/utils/discover/types'; +import {decodeScalar} from 'sentry/utils/queryString'; import {MutableSearch} from 'sentry/utils/tokenizeSearch'; import {useLocation} from 'sentry/utils/useLocation'; import {useOrganization} from 'sentry/utils/useOrganization'; @@ -16,7 +17,6 @@ import {useChartSelection} from 'sentry/views/explore/components/attributeBreakd import {useLogsAutoRefreshEnabled} from 'sentry/views/explore/contexts/logs/logsAutoRefreshContext'; import {Mode} from 'sentry/views/explore/contexts/pageParamsContext/mode'; import {formatSort} from 'sentry/views/explore/contexts/pageParamsContext/sortBys'; -import {getTitleFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/title'; import type {AggregatesTableResult} from 'sentry/views/explore/hooks/useExploreAggregatesTable'; import type {SpansTableResult} from 'sentry/views/explore/hooks/useExploreSpansTable'; import type {TracesTableResult} from 'sentry/views/explore/hooks/useExploreTracesTable'; @@ -1010,7 +1010,7 @@ export function useMetricsAnalytics({ const organization = useOrganization(); const {selection} = usePageFilters(); const location = useLocation(); - const title = getTitleFromLocation(location); + const title = decodeScalar(location.query.title); const { data: {hasExceededPerformanceUsageLimit}, diff --git a/static/app/views/explore/hooks/useSaveMultiQuery.tsx b/static/app/views/explore/hooks/useSaveMultiQuery.tsx index b8f75445b3502a..750bc5820f21b1 100644 --- a/static/app/views/explore/hooks/useSaveMultiQuery.tsx +++ b/static/app/views/explore/hooks/useSaveMultiQuery.tsx @@ -2,12 +2,12 @@ import {useCallback, useMemo} from 'react'; import {usePageFilters} from 'sentry/components/pageFilters/usePageFilters'; import {encodeSort} from 'sentry/utils/discover/eventView'; +import {decodeScalar} from 'sentry/utils/queryString'; import {useApi} from 'sentry/utils/useApi'; import {useChartInterval} from 'sentry/utils/useChartInterval'; import {useLocation} from 'sentry/utils/useLocation'; import {useOrganization} from 'sentry/utils/useOrganization'; import {getIdFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/id'; -import {getTitleFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/title'; import {useInvalidateSavedQueries} from 'sentry/views/explore/hooks/useGetSavedQueries'; import {MAX_QUERIES_ALLOWED} from 'sentry/views/explore/multiQueryMode/content'; import {useReadQueriesFromLocation} from 'sentry/views/explore/multiQueryMode/locationUtils'; @@ -17,7 +17,7 @@ const TRACE_EXPLORER_DATASET = 'spans'; export function useSaveMultiQuery() { const location = useLocation(); const id = getIdFromLocation(location); - const title = getTitleFromLocation(location); + const title = decodeScalar(location.query.title); const queries = useReadQueriesFromLocation().slice(0, MAX_QUERIES_ALLOWED); diff --git a/static/app/views/explore/logs/logsQueryParams.tsx b/static/app/views/explore/logs/logsQueryParams.tsx index 8a7f82212388d5..2168dc5695cdd1 100644 --- a/static/app/views/explore/logs/logsQueryParams.tsx +++ b/static/app/views/explore/logs/logsQueryParams.tsx @@ -35,7 +35,6 @@ import {getQueryFromLocation} from 'sentry/views/explore/queryParams/query'; import {ReadableQueryParams} from 'sentry/views/explore/queryParams/readableQueryParams'; import { getIdFromLocation, - getTitleFromLocation, ID_KEY, TITLE_KEY, } from 'sentry/views/explore/queryParams/savedQuery'; @@ -75,7 +74,7 @@ export function getReadableQueryParamsFromLocation( ) ?? defaultAggregateSortBys(aggregateFields); const id = getIdFromLocation(location, LOGS_ID_KEY); - const title = getTitleFromLocation(location, LOGS_TITLE_KEY); + const title = decodeScalar(location.query?.[LOGS_TITLE_KEY]); return new ReadableQueryParams({ extrapolate: true, diff --git a/static/app/views/explore/metrics/content.tsx b/static/app/views/explore/metrics/content.tsx index aab58a7080253b..9265101790e91d 100644 --- a/static/app/views/explore/metrics/content.tsx +++ b/static/app/views/explore/metrics/content.tsx @@ -11,6 +11,7 @@ import {SentryDocumentTitle} from 'sentry/components/sentryDocumentTitle'; import {t} from 'sentry/locale'; import {DataCategory} from 'sentry/types/core'; import {defined} from 'sentry/utils'; +import {decodeScalar} from 'sentry/utils/queryString'; import {useDatePageFilterProps} from 'sentry/utils/useDatePageFilterProps'; import {useLocation} from 'sentry/utils/useLocation'; import {useMaxPickableDays} from 'sentry/utils/useMaxPickableDays'; @@ -23,7 +24,6 @@ import {MetricsTabContent} from 'sentry/views/explore/metrics/metricsTab'; import {MultiMetricsQueryParamsProvider} from 'sentry/views/explore/metrics/multiMetricsQueryParams'; import { getIdFromLocation, - getTitleFromLocation, ID_KEY, TITLE_KEY, } from 'sentry/views/explore/queryParams/savedQuery'; @@ -91,7 +91,7 @@ const metricsFeedbackOptions = { function MetricsHeader() { const location = useLocation(); const pageId = getIdFromLocation(location, ID_KEY); - const title = getTitleFromLocation(location, TITLE_KEY); + const title = decodeScalar(location.query?.[TITLE_KEY]); const organization = useOrganization(); const {data: savedQuery} = useGetSavedQuery(pageId); const hasSavedQueryTitle = diff --git a/static/app/views/explore/metrics/hooks/useSaveMetricsMultiQuery.tsx b/static/app/views/explore/metrics/hooks/useSaveMetricsMultiQuery.tsx index 88b1097a63b170..f72be06197a692 100644 --- a/static/app/views/explore/metrics/hooks/useSaveMetricsMultiQuery.tsx +++ b/static/app/views/explore/metrics/hooks/useSaveMetricsMultiQuery.tsx @@ -4,12 +4,12 @@ import * as Sentry from '@sentry/react'; import {usePageFilters} from 'sentry/components/pageFilters/usePageFilters'; import {defined} from 'sentry/utils'; import {encodeSort} from 'sentry/utils/discover/eventView'; +import {decodeScalar} from 'sentry/utils/queryString'; import {useApi} from 'sentry/utils/useApi'; import {useChartInterval} from 'sentry/utils/useChartInterval'; import {useLocation} from 'sentry/utils/useLocation'; import {useOrganization} from 'sentry/utils/useOrganization'; import {getIdFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/id'; -import {getTitleFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/title'; import {useInvalidateSavedQueries} from 'sentry/views/explore/hooks/useGetSavedQueries'; import {useMultiMetricsQueryParams} from 'sentry/views/explore/metrics/multiMetricsQueryParams'; import {isGroupBy} from 'sentry/views/explore/queryParams/groupBy'; @@ -23,7 +23,7 @@ const METRICS_DATASET = 'metrics'; export function useSaveMetricsMultiQuery() { const location = useLocation(); const id = getIdFromLocation(location); - const title = getTitleFromLocation(location); + const title = decodeScalar(location.query.title); const metricQueries = useMultiMetricsQueryParams(); diff --git a/static/app/views/explore/multiQueryMode/index.tsx b/static/app/views/explore/multiQueryMode/index.tsx index f98cbbb193cd69..3c209f156b4ef4 100644 --- a/static/app/views/explore/multiQueryMode/index.tsx +++ b/static/app/views/explore/multiQueryMode/index.tsx @@ -7,10 +7,10 @@ import {NoAccess} from 'sentry/components/noAccess'; import {SentryDocumentTitle} from 'sentry/components/sentryDocumentTitle'; import {t} from 'sentry/locale'; import {defined} from 'sentry/utils'; +import {decodeScalar} from 'sentry/utils/queryString'; import {useLocation} from 'sentry/utils/useLocation'; import {useOrganization} from 'sentry/utils/useOrganization'; import {getIdFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/id'; -import {getTitleFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/title'; import {useGetSavedQuery} from 'sentry/views/explore/hooks/useGetSavedQueries'; import {MultiQueryModeContent} from 'sentry/views/explore/multiQueryMode/content'; import {SavedQueryEditMenu} from 'sentry/views/explore/savedQueryEditMenu'; @@ -21,7 +21,7 @@ import {makeTracesPathname} from 'sentry/views/traces/pathnames'; export default function MultiQueryMode() { const location = useLocation(); const organization = useOrganization(); - const title = getTitleFromLocation(location); + const title = decodeScalar(location.query.title); const id = getIdFromLocation(location); const {data: savedQuery} = useGetSavedQuery(id); diff --git a/static/app/views/explore/queryParams/savedQuery.ts b/static/app/views/explore/queryParams/savedQuery.ts index e0bae26ec638b0..197465ea5c9af9 100644 --- a/static/app/views/explore/queryParams/savedQuery.ts +++ b/static/app/views/explore/queryParams/savedQuery.ts @@ -8,10 +8,3 @@ export const TITLE_KEY = 'title'; export function getIdFromLocation(location: Location, key: string): string | undefined { return decodeScalar(location.query?.[key]); } - -export function getTitleFromLocation( - location: Location, - key: string -): string | undefined { - return decodeScalar(location.query?.[key]); -} diff --git a/static/app/views/explore/replays/list/replayQueryParamsProvider.tsx b/static/app/views/explore/replays/list/replayQueryParamsProvider.tsx index afbb2087199b93..8fb73f9a238353 100644 --- a/static/app/views/explore/replays/list/replayQueryParamsProvider.tsx +++ b/static/app/views/explore/replays/list/replayQueryParamsProvider.tsx @@ -2,6 +2,7 @@ import type {ReactNode} from 'react'; import {useCallback, useMemo} from 'react'; import type {Location} from 'history'; +import {decodeScalar} from 'sentry/utils/queryString'; import {updateNullableLocation} from 'sentry/utils/url/updateNullableLocation'; import {useLocation} from 'sentry/utils/useLocation'; import {useNavigate} from 'sentry/utils/useNavigate'; @@ -11,7 +12,6 @@ import {getQueryFromLocation} from 'sentry/views/explore/queryParams/query'; import {ReadableQueryParams} from 'sentry/views/explore/queryParams/readableQueryParams'; import { getIdFromLocation, - getTitleFromLocation, ID_KEY, TITLE_KEY, } from 'sentry/views/explore/queryParams/savedQuery'; @@ -22,7 +22,7 @@ const REPLAY_QUERY_KEY = 'query'; function getReadableQueryParamsFromLocation(location: Location): ReadableQueryParams { const query = getQueryFromLocation(location, REPLAY_QUERY_KEY) ?? ''; const id = getIdFromLocation(location, ID_KEY); - const title = getTitleFromLocation(location, TITLE_KEY); + const title = decodeScalar(location.query?.[TITLE_KEY]); return new ReadableQueryParams({ extrapolate: false, diff --git a/static/app/views/explore/spans/spansQueryParams.tsx b/static/app/views/explore/spans/spansQueryParams.tsx index 5975529a579d14..f4304b36007cdb 100644 --- a/static/app/views/explore/spans/spansQueryParams.tsx +++ b/static/app/views/explore/spans/spansQueryParams.tsx @@ -3,6 +3,7 @@ import type {Location} from 'history'; import {defined} from 'sentry/utils'; import type {Sort} from 'sentry/utils/discover/fields'; import {DiscoverDatasets} from 'sentry/utils/discover/types'; +import {decodeScalar} from 'sentry/utils/queryString'; import {updateNullableLocation} from 'sentry/utils/url/updateNullableLocation'; import {DEFAULT_VISUALIZATION} from 'sentry/views/explore/contexts/pageParamsContext/visualizes'; import type {AggregateField} from 'sentry/views/explore/queryParams/aggregateField'; @@ -22,7 +23,6 @@ import {getQueryFromLocation} from 'sentry/views/explore/queryParams/query'; import {ReadableQueryParams} from 'sentry/views/explore/queryParams/readableQueryParams'; import { getIdFromLocation, - getTitleFromLocation, ID_KEY, TITLE_KEY, } from 'sentry/views/explore/queryParams/savedQuery'; @@ -81,7 +81,7 @@ export function getReadableQueryParamsFromLocation( ) ?? defaultAggregateSortBys(aggregateFields); const id = getIdFromLocation(location, SPANS_ID_KEY); - const title = getTitleFromLocation(location, SPANS_TITLE_KEY); + const title = decodeScalar(location.query?.[SPANS_TITLE_KEY]); const crossEvents = getCrossEventsFromLocation(location, SPANS_CROSS_EVENTS_KEY);