import React, {useCallback, useLayoutEffect, useRef, useState} from 'react'; import styled from '@emotion/styled'; import {useResizeObserver} from '@react-aria/utils'; import Button from 'sentry/components/button'; import ButtonBar from 'sentry/components/buttonBar'; import CompositeSelect from 'sentry/components/forms/compositeSelect'; import {useReplayContext} from 'sentry/components/replays/replayContext'; import {formatTime, relativeTimeInMs} from 'sentry/components/replays/utils'; import { IconContract, IconExpand, IconNext, IconPause, IconPlay, IconPrevious, IconRewind10, IconSettings, } from 'sentry/icons'; import {t} from 'sentry/locale'; import space from 'sentry/styles/space'; import {SelectValue} from 'sentry/types'; import {BreadcrumbType} from 'sentry/types/breadcrumbs'; import {getNextBreadcrumb} from 'sentry/utils/replays/getBreadcrumb'; import useFullscreen from 'sentry/utils/replays/hooks/useFullscreen'; const SECOND = 1000; const USER_ACTIONS = [ BreadcrumbType.ERROR, BreadcrumbType.INIT, BreadcrumbType.NAVIGATION, BreadcrumbType.UI, BreadcrumbType.USER, ]; interface Props { speedOptions?: number[]; toggleFullscreen?: () => void; } function ReplayPlayPauseBar({isCompact}: {isCompact: boolean}) { const { currentTime, isFinished, isPlaying, replay, restart, setCurrentTime, togglePlayPause, } = useReplayContext(); return ( {!isCompact && (