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