import { ButtonProps } from '@mui/material'; import { FC } from 'react'; import { useMediaStore } from '../../context'; import { useIsAudio } from '../../hooks'; import { PLAYBACK_RATES } from '../../utils/constants'; import { MultiplySymbol } from '../../utils/MultiplySymbol'; import { PlaybackRateButtonStyled } from './components/PlaybackRateButtonStyled'; import { useCenteredBottomPlaybackStyles } from './useCenteredBottomPlaybackStyles'; interface PlayBackButtonProps extends ButtonProps { onChangeRate: (playbackRate: number) => void; playbackRate: number; active: number; } /** * Component shown before a media has started * @category React Component * @category UI Controls */ const PlayBackButton: FC = ({ playbackRate, onChangeRate, active, ...props }) => { const onClick = () => { onChangeRate(playbackRate); }; const isActive = active === playbackRate; return ( {playbackRate} ); }; export interface CenteredBottomPlaybackProps { className?: string; } export const CenteredBottomPlayback: FC = ({ className, }) => { const isAudio = useIsAudio(); const hasStarted = useMediaStore(state => state.hasPlayedOrSeeked); const playbackRate = useMediaStore(state => state.playbackRate); const setPlaybackRate = useMediaStore(state => state.setPlaybackRate); const onChangePlaybackRate = (rate: number) => { setPlaybackRate(rate); }; const { classes: { wrapper, playbackWrapper }, cx, } = useCenteredBottomPlaybackStyles(); if (hasStarted || isAudio) { return null; } return (
{PLAYBACK_RATES.map(item => ( ))}
); };