2021-04-07 00:42:43 -05:00
|
|
|
import { useCallback, useMemo } from 'react';
|
2021-04-27 08:28:53 -05:00
|
|
|
import { useLocation } from 'react-router-dom';
|
2021-04-07 00:42:43 -05:00
|
|
|
|
2022-04-22 08:33:13 -05:00
|
|
|
import { UrlQueryMap } from '@grafana/data';
|
|
|
|
import { locationSearchToObject, locationService } from '@grafana/runtime';
|
|
|
|
|
2021-04-07 00:42:43 -05:00
|
|
|
export function useQueryParams(): [UrlQueryMap, (values: UrlQueryMap, replace?: boolean) => void] {
|
|
|
|
const { search } = useLocation();
|
|
|
|
const queryParams = useMemo(() => locationSearchToObject(search || ''), [search]);
|
2021-12-03 11:09:25 -06:00
|
|
|
const update = useCallback((values: UrlQueryMap, replace?: boolean) => locationService.partial(values, replace), []);
|
2021-04-07 00:42:43 -05:00
|
|
|
return [queryParams, update];
|
|
|
|
}
|