diff --git a/static/app/views/explore/contexts/pageParamsContext/id.tsx b/static/app/views/explore/contexts/pageParamsContext/id.tsx deleted file mode 100644 index c83949b45e43..000000000000 --- a/static/app/views/explore/contexts/pageParamsContext/id.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import type {Location} from 'history'; - -import {decodeScalar} from 'sentry/utils/queryString'; - -export function getIdFromLocation(location: Location) { - return decodeScalar(location.query.id); -} diff --git a/static/app/views/explore/hooks/useSaveMultiQuery.tsx b/static/app/views/explore/hooks/useSaveMultiQuery.tsx index 750bc5820f21..04cbb6e887df 100644 --- a/static/app/views/explore/hooks/useSaveMultiQuery.tsx +++ b/static/app/views/explore/hooks/useSaveMultiQuery.tsx @@ -7,7 +7,6 @@ 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 {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'; @@ -16,7 +15,7 @@ const TRACE_EXPLORER_DATASET = 'spans'; export function useSaveMultiQuery() { const location = useLocation(); - const id = getIdFromLocation(location); + const id = decodeScalar(location.query.id); 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 cefaf8c3950d..2da8831fd539 100644 --- a/static/app/views/explore/logs/logsQueryParams.tsx +++ b/static/app/views/explore/logs/logsQueryParams.tsx @@ -32,11 +32,7 @@ import { } from 'sentry/views/explore/queryParams/groupBy'; import {getModeFromLocation} from 'sentry/views/explore/queryParams/mode'; import {ReadableQueryParams} from 'sentry/views/explore/queryParams/readableQueryParams'; -import { - getIdFromLocation, - ID_KEY, - TITLE_KEY, -} from 'sentry/views/explore/queryParams/savedQuery'; +import {ID_KEY, TITLE_KEY} from 'sentry/views/explore/queryParams/savedQuery'; import {getSortBysFromLocation} from 'sentry/views/explore/queryParams/sortBy'; import type {Visualize} from 'sentry/views/explore/queryParams/visualize'; import {isVisualize, VisualizeFunction} from 'sentry/views/explore/queryParams/visualize'; @@ -72,8 +68,8 @@ export function getReadableQueryParamsFromLocation( aggregateFields ) ?? defaultAggregateSortBys(aggregateFields); - const id = getIdFromLocation(location, LOGS_ID_KEY); - const title = decodeScalar(location.query?.[LOGS_TITLE_KEY]); + const id = decodeScalar(location.query[LOGS_ID_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 9265101790e9..1c404cc2878c 100644 --- a/static/app/views/explore/metrics/content.tsx +++ b/static/app/views/explore/metrics/content.tsx @@ -22,11 +22,7 @@ import {canUseMetricsEquations} from 'sentry/views/explore/metrics/metricsFlags' import {MetricsTabOnboarding} from 'sentry/views/explore/metrics/metricsOnboarding'; import {MetricsTabContent} from 'sentry/views/explore/metrics/metricsTab'; import {MultiMetricsQueryParamsProvider} from 'sentry/views/explore/metrics/multiMetricsQueryParams'; -import { - getIdFromLocation, - ID_KEY, - TITLE_KEY, -} from 'sentry/views/explore/queryParams/savedQuery'; +import {ID_KEY, TITLE_KEY} from 'sentry/views/explore/queryParams/savedQuery'; import {TraceItemDataset} from 'sentry/views/explore/types'; import {useOnboardingProject} from 'sentry/views/insights/common/queries/useOnboardingProject'; import {TopBar} from 'sentry/views/navigation/topBar'; @@ -90,8 +86,8 @@ const metricsFeedbackOptions = { function MetricsHeader() { const location = useLocation(); - const pageId = getIdFromLocation(location, ID_KEY); - const title = decodeScalar(location.query?.[TITLE_KEY]); + const pageId = decodeScalar(location.query[ID_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 f72be06197a6..b0eadd516ca7 100644 --- a/static/app/views/explore/metrics/hooks/useSaveMetricsMultiQuery.tsx +++ b/static/app/views/explore/metrics/hooks/useSaveMetricsMultiQuery.tsx @@ -9,7 +9,6 @@ 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 {useInvalidateSavedQueries} from 'sentry/views/explore/hooks/useGetSavedQueries'; import {useMultiMetricsQueryParams} from 'sentry/views/explore/metrics/multiMetricsQueryParams'; import {isGroupBy} from 'sentry/views/explore/queryParams/groupBy'; @@ -22,7 +21,7 @@ const METRICS_DATASET = 'metrics'; export function useSaveMetricsMultiQuery() { const location = useLocation(); - const id = getIdFromLocation(location); + const id = decodeScalar(location.query.id); const title = decodeScalar(location.query.title); const metricQueries = useMultiMetricsQueryParams(); diff --git a/static/app/views/explore/metrics/useSaveAsMetricItems.tsx b/static/app/views/explore/metrics/useSaveAsMetricItems.tsx index ca82a876c7c9..981fb7392e4b 100644 --- a/static/app/views/explore/metrics/useSaveAsMetricItems.tsx +++ b/static/app/views/explore/metrics/useSaveAsMetricItems.tsx @@ -12,12 +12,12 @@ import {t} from 'sentry/locale'; import {defined} from 'sentry/utils'; import {trackAnalytics} from 'sentry/utils/analytics'; import {parseFunction, prettifyParsedFunction} from 'sentry/utils/discover/fields'; +import {decodeScalar} from 'sentry/utils/queryString'; import {useLocation} from 'sentry/utils/useLocation'; import {useOrganization} from 'sentry/utils/useOrganization'; import {useProjects} from 'sentry/utils/useProjects'; import {Dataset, EventTypes} from 'sentry/views/alerts/rules/metric/types'; import {formatTraceMetricsFunction} from 'sentry/views/dashboards/datasetConfig/traceMetrics'; -import {getIdFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/id'; import {useGetSavedQuery} from 'sentry/views/explore/hooks/useGetSavedQueries'; import {useAddMetricToDashboard} from 'sentry/views/explore/metrics/hooks/useAddMetricToDashboard'; import {useSaveMetricsMultiQuery} from 'sentry/views/explore/metrics/hooks/useSaveMetricsMultiQuery'; @@ -47,7 +47,7 @@ export function useSaveAsMetricItems(options: UseSaveAsMetricItemsOptions) { const {projects} = useProjects(); const pageFilters = usePageFilters(); const {saveQuery, updateQuery} = useSaveMetricsMultiQuery(); - const id = getIdFromLocation(location); + const id = decodeScalar(location.query.id); const {data: savedQuery} = useGetSavedQuery(id); const metricQueries = useMultiMetricsQueryParams(); diff --git a/static/app/views/explore/multiQueryMode/content.tsx b/static/app/views/explore/multiQueryMode/content.tsx index 3d7a0244e172..4a52ef15acfb 100644 --- a/static/app/views/explore/multiQueryMode/content.tsx +++ b/static/app/views/explore/multiQueryMode/content.tsx @@ -27,12 +27,12 @@ import {defined} from 'sentry/utils'; import {trackAnalytics} from 'sentry/utils/analytics'; import {encodeSort} from 'sentry/utils/discover/eventView'; import {valueIsEqual} from 'sentry/utils/object/valueIsEqual'; +import {decodeScalar} from 'sentry/utils/queryString'; import {useDatePageFilterProps} from 'sentry/utils/useDatePageFilterProps'; import {useLocation} from 'sentry/utils/useLocation'; import {useMaxPickableDays} from 'sentry/utils/useMaxPickableDays'; import {useOrganization} from 'sentry/utils/useOrganization'; import {WidgetSyncContextProvider} from 'sentry/views/dashboards/contexts/widgetSyncContext'; -import {getIdFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/id'; import {useGetSavedQuery} from 'sentry/views/explore/hooks/useGetSavedQueries'; import {useSaveMultiQuery} from 'sentry/views/explore/hooks/useSaveMultiQuery'; import {useVisitQuery} from 'sentry/views/explore/hooks/useVisitQuery'; @@ -57,7 +57,7 @@ function Content({datePageFilterProps}: ContentProps) { const queries = useReadQueriesFromLocation().slice(0, MAX_QUERIES_ALLOWED); const addQuery = useAddQuery(); const totalQueryRows = queries.length; - const id = getIdFromLocation(location); + const id = decodeScalar(location.query.id); const visitQuery = useVisitQuery(); useEffect(() => { diff --git a/static/app/views/explore/multiQueryMode/index.tsx b/static/app/views/explore/multiQueryMode/index.tsx index 3c209f156b4e..a7a43f7c4b24 100644 --- a/static/app/views/explore/multiQueryMode/index.tsx +++ b/static/app/views/explore/multiQueryMode/index.tsx @@ -10,7 +10,6 @@ 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 {useGetSavedQuery} from 'sentry/views/explore/hooks/useGetSavedQueries'; import {MultiQueryModeContent} from 'sentry/views/explore/multiQueryMode/content'; import {SavedQueryEditMenu} from 'sentry/views/explore/savedQueryEditMenu'; @@ -23,7 +22,7 @@ export default function MultiQueryMode() { const organization = useOrganization(); const title = decodeScalar(location.query.title); - const id = getIdFromLocation(location); + const id = decodeScalar(location.query.id); const {data: savedQuery} = useGetSavedQuery(id); return ( diff --git a/static/app/views/explore/queryParams/savedQuery.ts b/static/app/views/explore/queryParams/savedQuery.ts index 197465ea5c9a..e7f6efd8eebc 100644 --- a/static/app/views/explore/queryParams/savedQuery.ts +++ b/static/app/views/explore/queryParams/savedQuery.ts @@ -1,10 +1,2 @@ -import type {Location} from 'history'; - -import {decodeScalar} from 'sentry/utils/queryString'; - export const ID_KEY = 'id'; export const TITLE_KEY = 'title'; - -export function getIdFromLocation(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 5d7b0c1e9afc..1ad95d04ed8f 100644 --- a/static/app/views/explore/replays/list/replayQueryParamsProvider.tsx +++ b/static/app/views/explore/replays/list/replayQueryParamsProvider.tsx @@ -9,19 +9,15 @@ import {useNavigate} from 'sentry/utils/useNavigate'; import {Mode} from 'sentry/views/explore/contexts/pageParamsContext/mode'; import {QueryParamsContextProvider} from 'sentry/views/explore/queryParams/context'; import {ReadableQueryParams} from 'sentry/views/explore/queryParams/readableQueryParams'; -import { - getIdFromLocation, - ID_KEY, - TITLE_KEY, -} from 'sentry/views/explore/queryParams/savedQuery'; +import {ID_KEY, TITLE_KEY} from 'sentry/views/explore/queryParams/savedQuery'; import type {WritableQueryParams} from 'sentry/views/explore/queryParams/writableQueryParams'; const REPLAY_QUERY_KEY = 'query'; function getReadableQueryParamsFromLocation(location: Location): ReadableQueryParams { const query = decodeScalar(location.query[REPLAY_QUERY_KEY]) ?? ''; - const id = getIdFromLocation(location, ID_KEY); - const title = decodeScalar(location.query?.[TITLE_KEY]); + const id = decodeScalar(location.query[ID_KEY]); + const title = decodeScalar(location.query[TITLE_KEY]); return new ReadableQueryParams({ extrapolate: false, diff --git a/static/app/views/explore/savedQueryEditMenu.tsx b/static/app/views/explore/savedQueryEditMenu.tsx index 3b824787319d..243d689a05b7 100644 --- a/static/app/views/explore/savedQueryEditMenu.tsx +++ b/static/app/views/explore/savedQueryEditMenu.tsx @@ -4,11 +4,11 @@ import {DropdownMenu} from 'sentry/components/dropdownMenu'; import {IconEllipsis} from 'sentry/icons/iconEllipsis'; import {t} from 'sentry/locale'; import {trackAnalytics} from 'sentry/utils/analytics'; +import {decodeScalar} from 'sentry/utils/queryString'; import {normalizeUrl} from 'sentry/utils/url/normalizeUrl'; import {useLocation} from 'sentry/utils/useLocation'; import {useNavigate} from 'sentry/utils/useNavigate'; import {useOrganization} from 'sentry/utils/useOrganization'; -import {getIdFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/id'; import {useDeleteQuery} from 'sentry/views/explore/hooks/useDeleteQuery'; import { getSavedQueryTraceItemDataset, @@ -21,7 +21,7 @@ import {confirmDeleteSavedQuery} from 'sentry/views/explore/utils'; export function SavedQueryEditMenu() { const organization = useOrganization(); const location = useLocation(); - const locationId = getIdFromLocation(location); + const locationId = decodeScalar(location.query.id); const {data: savedQuery} = useGetSavedQuery(locationId); const navigate = useNavigate(); const {deleteQuery} = useDeleteQuery(); diff --git a/static/app/views/explore/spans/spansQueryParams.tsx b/static/app/views/explore/spans/spansQueryParams.tsx index fb1b58709b95..61eacd2cebfc 100644 --- a/static/app/views/explore/spans/spansQueryParams.tsx +++ b/static/app/views/explore/spans/spansQueryParams.tsx @@ -19,11 +19,7 @@ import { } from 'sentry/views/explore/queryParams/groupBy'; import {getModeFromLocation} from 'sentry/views/explore/queryParams/mode'; import {ReadableQueryParams} from 'sentry/views/explore/queryParams/readableQueryParams'; -import { - getIdFromLocation, - ID_KEY, - TITLE_KEY, -} from 'sentry/views/explore/queryParams/savedQuery'; +import {ID_KEY, TITLE_KEY} from 'sentry/views/explore/queryParams/savedQuery'; import {getSortBysFromLocation} from 'sentry/views/explore/queryParams/sortBy'; import type {Visualize} from 'sentry/views/explore/queryParams/visualize'; import { @@ -78,8 +74,8 @@ export function getReadableQueryParamsFromLocation( aggregateFields ) ?? defaultAggregateSortBys(aggregateFields); - const id = getIdFromLocation(location, SPANS_ID_KEY); - const title = decodeScalar(location.query?.[SPANS_TITLE_KEY]); + const id = decodeScalar(location.query[SPANS_ID_KEY]); + const title = decodeScalar(location.query[SPANS_TITLE_KEY]); const crossEvents = getCrossEventsFromLocation(location, SPANS_CROSS_EVENTS_KEY); diff --git a/static/app/views/explore/starSavedQueryButton.tsx b/static/app/views/explore/starSavedQueryButton.tsx index 30816a057ad7..445e7176544e 100644 --- a/static/app/views/explore/starSavedQueryButton.tsx +++ b/static/app/views/explore/starSavedQueryButton.tsx @@ -8,9 +8,9 @@ import {addErrorMessage} from 'sentry/actionCreators/indicator'; import {IconStar} from 'sentry/icons/iconStar'; import {t} from 'sentry/locale'; import {trackAnalytics} from 'sentry/utils/analytics'; +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 { getSavedQueryTraceItemDataset, useGetSavedQuery, @@ -21,7 +21,7 @@ import {TraceItemDataset} from 'sentry/views/explore/types'; export function StarSavedQueryButton() { const organization = useOrganization(); const location = useLocation(); - const locationId = getIdFromLocation(location); + const locationId = decodeScalar(location.query.id); const {starQuery} = useStarQuery(); const {data, isLoading, isFetched} = useGetSavedQuery(locationId); const [isStarred, setIsStarred] = useState(data?.starred); diff --git a/static/app/views/navigation/secondary/sections/explore/exploreSavedQueryNavigationItems.tsx b/static/app/views/navigation/secondary/sections/explore/exploreSavedQueryNavigationItems.tsx index 3131280905cd..fc110148e298 100644 --- a/static/app/views/navigation/secondary/sections/explore/exploreSavedQueryNavigationItems.tsx +++ b/static/app/views/navigation/secondary/sections/explore/exploreSavedQueryNavigationItems.tsx @@ -2,10 +2,10 @@ import {Text} from '@sentry/scraps/text'; import {Tooltip} from '@sentry/scraps/tooltip'; import {defined} from 'sentry/utils'; +import {decodeScalar} from 'sentry/utils/queryString'; import {useLocation} from 'sentry/utils/useLocation'; import {useOrganization} from 'sentry/utils/useOrganization'; import {useProjects} from 'sentry/utils/useProjects'; -import {getIdFromLocation} from 'sentry/views/explore/contexts/pageParamsContext/id'; import {type SavedQuery} from 'sentry/views/explore/hooks/useGetSavedQueries'; import {useReorderStarredSavedQueries} from 'sentry/views/explore/hooks/useReorderStarredSavedQueries'; import {getSavedQueryTraceItemUrl} from 'sentry/views/explore/utils'; @@ -18,7 +18,7 @@ type Props = { export function ExploreSavedQueryNavigationItems({queries}: Props) { const organization = useOrganization(); const location = useLocation(); - const id = getIdFromLocation(location); + const id = decodeScalar(location.query.id); const {projects} = useProjects();