import {CSSProperties, MouseEvent} from 'react'; import styled from '@emotion/styled'; import classNames from 'classnames'; import BreadcrumbItem from 'sentry/components/replays/breadcrumbs/breadcrumbItem'; import {useReplayContext} from 'sentry/components/replays/replayContext'; import useCrumbHandlers from 'sentry/utils/replays/hooks/useCrumbHandlers'; import type {ReplayFrame} from 'sentry/utils/replays/types'; interface Props { frame: ReplayFrame; index: number; onClick: ReturnType['onClickTimestamp']; onDimensionChange: ( index: number, path: string, expandedState: Record, event: MouseEvent ) => void; startTimestampMs: number; style: CSSProperties; breadcrumbIndex?: number[][]; expandPaths?: string[]; } function BreadcrumbRow({ expandPaths, frame, index, onClick, onDimensionChange, startTimestampMs, style, }: Props) { const {currentTime, currentHoverTime} = useReplayContext(); const {onMouseEnter, onMouseLeave} = useCrumbHandlers(); const hasOccurred = currentTime >= frame.offsetMs; const isBeforeHover = currentHoverTime === undefined || currentHoverTime >= frame.offsetMs; return ( ); } const StyledTimeBorder = styled('div')` /* Overridden in TabItemContainer, depending on *CurrentTime and *HoverTime classes */ border-top: 1px solid transparent; border-bottom: 1px solid transparent; `; export default BreadcrumbRow;