import { ActionButton } from './actionbutton/ActionButton';
import React, { type ReactNode, useCallback, useContext } from 'react';
import { PlayerContext } from '../util/PlayerContext';
import { VolumeOffSvg } from './svg/VolumeOffSvg';
import { VolumeUpSvg } from './svg/VolumeUpSvg';
import { useMuted } from '../../hooks/useMuted';
import type { ButtonBaseProps } from './ButtonBaseProps';
import { TestIDs } from '../../utils/TestIDs';
export interface MuteButtonProps extends ButtonBaseProps {
/**
* The icon components used in the button.
*/
icon?: { volumeUp: ReactNode; volumeOff: ReactNode };
}
export function MuteButton(props: MuteButtonProps) {
const { icon } = props;
const { player } = useContext(PlayerContext);
const muted = useMuted();
const toggleMuted = useCallback(() => {
// eslint-disable-next-line react-hooks/immutability
player.muted = !player.muted;
}, [player]);
const volumeUpSvg: ReactNode = icon?.volumeUp ?? ;
const volumeOffSvg: ReactNode = icon?.volumeOff ?? ;
return (
);
}