index.tsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import {
  2. useExploreDataset,
  3. useExploreFields,
  4. useExploreGroupBys,
  5. useExploreMode,
  6. useExploreSortBys,
  7. useExploreVisualizes,
  8. useSetExploreDataset,
  9. useSetExploreMode,
  10. useSetExploreSortBys,
  11. } from 'sentry/views/explore/contexts/pageParamsContext';
  12. import {Mode} from 'sentry/views/explore/contexts/pageParamsContext/mode';
  13. import {ToolbarDataset} from 'sentry/views/explore/toolbar/toolbarDataset';
  14. import {ToolbarGroupBy} from 'sentry/views/explore/toolbar/toolbarGroupBy';
  15. import {ToolbarMode} from 'sentry/views/explore/toolbar/toolbarMode';
  16. import {ToolbarSortBy} from 'sentry/views/explore/toolbar/toolbarSortBy';
  17. import {ToolbarSuggestedQueries} from 'sentry/views/explore/toolbar/toolbarSuggestedQueries';
  18. import {ToolbarVisualize} from 'sentry/views/explore/toolbar/toolbarVisualize';
  19. type Extras = 'dataset toggle';
  20. interface ExploreToolbarProps {
  21. extras?: Extras[];
  22. }
  23. export function ExploreToolbar({extras}: ExploreToolbarProps) {
  24. const dataset = useExploreDataset();
  25. const setDataset = useSetExploreDataset();
  26. const mode = useExploreMode();
  27. const setMode = useSetExploreMode();
  28. const fields = useExploreFields();
  29. const groupBys = useExploreGroupBys();
  30. const visualizes = useExploreVisualizes();
  31. const sortBys = useExploreSortBys();
  32. const setSortBys = useSetExploreSortBys();
  33. return (
  34. <div>
  35. {extras?.includes('dataset toggle') && (
  36. <ToolbarDataset dataset={dataset} setDataset={setDataset} />
  37. )}
  38. <ToolbarMode mode={mode} setMode={setMode} />
  39. <ToolbarVisualize />
  40. <ToolbarGroupBy disabled={mode !== Mode.AGGREGATE} />
  41. <ToolbarSortBy
  42. fields={fields}
  43. groupBys={groupBys}
  44. visualizes={visualizes}
  45. sorts={sortBys}
  46. setSorts={setSortBys}
  47. />
  48. <ToolbarSuggestedQueries />
  49. </div>
  50. );
  51. }