jumpToOffsetButtonBar.tsx 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. import {Button} from 'sentry/components/button';
  2. import ButtonBar from 'sentry/components/buttonBar';
  3. import formatDuration from 'sentry/utils/duration/formatDuration';
  4. import {intervalToMilliseconds} from 'sentry/utils/duration/intervalToMilliseconds';
  5. import {useReplayUserAction} from 'sentry/utils/replays/playback/providers/replayPlayerStateContext';
  6. interface Props {
  7. intervals: string[];
  8. }
  9. export default function JumpToOffsetButtonBar({intervals}: Props) {
  10. const userAction = useReplayUserAction();
  11. return (
  12. <ButtonBar merged>
  13. {intervals.map(interval => {
  14. const intervalMs = intervalToMilliseconds(interval);
  15. return (
  16. <Button
  17. key={interval}
  18. onClick={() => userAction({type: 'jumpToOffset', offsetMs: intervalMs})}
  19. size="sm"
  20. >
  21. {formatDuration({
  22. duration: [intervalMs, 'ms'],
  23. style: 'h:mm:ss.sss',
  24. precision: 'ms',
  25. })}
  26. </Button>
  27. );
  28. })}
  29. </ButtonBar>
  30. );
  31. }