import { css } from '@emotion/css'; import { useRef } from 'react'; import { CSSTransition } from 'react-transition-group'; import { Trans, t } from '@grafana/i18n'; import { Tooltip, ButtonGroup, ToolbarButton } from '@grafana/ui'; type LiveTailButtonProps = { splitted: boolean; start: () => void; stop: () => void; pause: () => void; resume: () => void; isLive: boolean; isPaused: boolean; }; export function LiveTailButton(props: LiveTailButtonProps) { const transitionRef = useRef(null); const { start, pause, resume, isLive, isPaused, stop, splitted } = props; const buttonVariant = isLive && !isPaused ? 'active' : 'canvas'; const onClickMain = isLive ? (isPaused ? resume : pause) : start; return ( Pause the live stream ) : ( <> Start live stream your logs ) } placement="bottom" > {isLive && isPaused ? t('explore.live-tail-button.paused', 'Paused') : t('explore.live-tail-button.live', 'Live')} Stop and exit the live stream } placement="bottom" > ); } const styles = { stopButtonEnter: css({ label: 'stopButtonEnter', width: 0, opacity: 0, overflow: 'hidden', }), stopButtonEnterActive: css({ label: 'stopButtonEnterActive', opacity: 1, width: '32px', }), stopButtonExit: css({ label: 'stopButtonExit', width: '32px', opacity: 1, overflow: 'hidden', }), stopButtonExitActive: css({ label: 'stopButtonExitActive', opacity: 0, width: 0, }), };