focusArea.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import styled from '@emotion/styled';
  2. import {space} from 'sentry/styles/space';
  3. import useActiveReplayTab, {TabKey} from 'sentry/utils/replays/hooks/useActiveReplayTab';
  4. import A11y from 'sentry/views/replays/detail/accessibility/index';
  5. import Console from 'sentry/views/replays/detail/console';
  6. import DomMutations from 'sentry/views/replays/detail/domMutations';
  7. import DomNodesChart from 'sentry/views/replays/detail/domNodesChart';
  8. import ErrorList from 'sentry/views/replays/detail/errorList/index';
  9. import FluidHeight from 'sentry/views/replays/detail/layout/fluidHeight';
  10. import MemoryChart from 'sentry/views/replays/detail/memoryChart';
  11. import NetworkList from 'sentry/views/replays/detail/network';
  12. import PerfTable from 'sentry/views/replays/detail/perfTable/index';
  13. import Trace from 'sentry/views/replays/detail/trace/index';
  14. type Props = {};
  15. function FocusArea({}: Props) {
  16. const {getActiveTab} = useActiveReplayTab();
  17. switch (getActiveTab()) {
  18. case TabKey.A11Y:
  19. return <A11y />;
  20. case TabKey.NETWORK:
  21. return <NetworkList />;
  22. case TabKey.TRACE:
  23. return <Trace />;
  24. case TabKey.PERF:
  25. return <PerfTable />;
  26. case TabKey.ERRORS:
  27. return <ErrorList />;
  28. case TabKey.DOM:
  29. return <DomMutations />;
  30. case TabKey.MEMORY:
  31. return (
  32. <MemoryTabWrapper>
  33. <MemoryChart />
  34. <DomNodesChart />
  35. </MemoryTabWrapper>
  36. );
  37. case TabKey.CONSOLE:
  38. default: {
  39. return <Console />;
  40. }
  41. }
  42. }
  43. const MemoryTabWrapper = styled(FluidHeight)`
  44. justify-content: center;
  45. gap: ${space(1)};
  46. height: 100%;
  47. display: flex;
  48. `;
  49. export default FocusArea;