moodist/src/components/play-button/play-button.tsx
2023-10-10 17:49:35 +03:30

42 lines
903 B
TypeScript

import { useEffect } from 'react';
import { BiPause, BiPlay } from 'react-icons/bi/index';
import { useSoundStore } from '@/store';
import { usePlay } from '@/contexts/play';
import styles from './play-button.module.css';
export function PlayButton() {
const { isPlaying, pause, toggle } = usePlay();
const noSelected = useSoundStore(state => state.noSelected());
const handleClick = () => {
if (noSelected) return pause();
toggle();
};
useEffect(() => {
if (isPlaying && noSelected) pause();
}, [isPlaying, pause, noSelected]);
return (
<button className={styles.playButton} onClick={handleClick}>
{isPlaying ? (
<>
<span>
<BiPause />
</span>{' '}
Pause
</>
) : (
<>
<span>
<BiPlay />
</span>{' '}
Play
</>
)}
</button>
);
}