useDashboardWidgetSource.tsx 624 B

123456789101112131415161718
  1. import {defined} from 'sentry/utils';
  2. import useUrlParams from 'sentry/utils/useUrlParams';
  3. import {DashboardWidgetSource} from 'sentry/views/dashboards/types';
  4. function useDashboardWidgetSource(): DashboardWidgetSource | '' {
  5. const {getParamValue} = useUrlParams('source');
  6. const source = getParamValue();
  7. const validSources = Object.values(
  8. DashboardWidgetSource
  9. ) satisfies DashboardWidgetSource[];
  10. return defined(source) && validSources.includes(source as DashboardWidgetSource)
  11. ? (source as DashboardWidgetSource)
  12. : DashboardWidgetSource.DASHBOARDS;
  13. }
  14. export default useDashboardWidgetSource;