import {Slider} from '@common/ui/forms/slider/slider'; import {usePlayerActions} from '@common/player/hooks/use-player-actions'; import {usePlayerStore} from '@common/player/hooks/use-player-store'; import {IconButton} from '@common/ui/buttons/icon-button'; import {BaseSliderProps} from '@common/ui/forms/slider/base-slider'; import {ButtonProps} from '@common/ui/buttons/button'; import {MediaMuteIcon} from '@common/icons/media/media-mute'; import {MediaVolumeLowIcon} from '@common/icons/media/media-volume-low'; import {MediaVolumeHighIcon} from '@common/icons/media/media-volume-high'; import {Tooltip} from '@common/ui/tooltip/tooltip'; import {Trans} from '@common/i18n/trans'; import clsx from 'clsx'; interface Props { trackColor?: BaseSliderProps['trackColor']; fillColor?: BaseSliderProps['fillColor']; buttonColor?: ButtonProps['color']; className?: string; } export function VolumeControls({ trackColor, fillColor, buttonColor, className, }: Props) { const volume = usePlayerStore(s => s.volume); const player = usePlayerActions(); const playerReady = usePlayerStore(s => s.providerReady); return (
{ player.setVolume(value); }} />
); } interface ToggleMuteButtonProps { color?: ButtonProps['color']; size?: ButtonProps['size']; iconSize?: ButtonProps['size']; } export function ToggleMuteButton({ color, size = 'sm', iconSize = 'md', }: ToggleMuteButtonProps) { const isMuted = usePlayerStore(s => s.muted); const volume = usePlayerStore(s => s.volume); const player = usePlayerActions(); const playerReady = usePlayerStore(s => s.providerReady); if (isMuted) { return ( } usePortal={false}> player.setMuted(false)} > ); } return ( }> player.setMuted(true)} > {volume < 40 ? : } ); }