feat(Player): 记录静音前音量

feature/artists
mackt 4 months ago
parent 530da1408e
commit 3e17c31cd5

@ -2,9 +2,12 @@
import { useState } from 'react';
import { useShallow } from 'zustand/react/shallow';
import ButtonProvide from './ButtonProvide';
import VolumeBar from './VolumeBar';
import { useAudioStore } from '@/store';
export default function Volume({
value,
className,
@ -14,10 +17,26 @@ export default function Volume({
className?: string;
onChange: (value: number) => void;
}) {
const { preMuteVolume, setPreMuteVolume } = useAudioStore(
useShallow((state) => {
return {
preMuteVolume: state.preMuteVolume,
setPreMuteVolume: state.setPreMuteVolume,
};
}),
);
const [hover, setHover] = useState<boolean>(false);
const handleClick = () => {
onChange(value > 0 ? 0 : 50);
const handleMute = () => {
if (value > 0) {
// 当前有音量
setPreMuteVolume(value);
onChange(0);
} else {
// 当前无音量
onChange(preMuteVolume);
}
};
return (
@ -29,7 +48,7 @@ export default function Volume({
{/* 音量条 */}
<VolumeBar value={value} className={`${!hover && '!hidden'} transition-all`} onChange={onChange} />
{/* 按钮 */}
<ButtonProvide className="group" onClick={handleClick}>
<ButtonProvide className="group" onClick={handleMute}>
{value >= 50 ? (
<VolumeFull hover={hover} />
) : value === 0 ? (

Loading…
Cancel
Save