import React, { useState } from "react"; import { useSelector, useDispatch } from "react-redux"; import { actionTogglePlay, actionToggleRepeat, actionSetVolume, actionSetCurrentTime, actionPrevTrack, actionNextTrack, } from "../../redux/actions/creators/audio"; import "./style.scoped.scss"; import { removeAudioExtension } from "../../utils/regex"; import CollapseIcon from "../../assets/collapse_icon.svg"; import ShuffleIcon from "../../assets/shuffle_icon.svg"; import PreviousIcon from "../../assets/previous_icon.svg"; import NextIcon from "../../assets/next_icon.svg"; import PlayIcon from "../../assets/play_icon.svg"; import StopIcon from "../../assets/stop_icon.svg"; import RepeatIcon from "../../assets/repeat_icon.svg"; import VolumeUpIcon from "../../assets/volume_up_icon.svg"; import VolumeStopIcon from "../../assets/volume_stop_icon.svg"; import { secondsToHMS } from "../../utils"; const whiteFilter = `invert(100%) sepia(0%) saturate(7500%) hue-rotate(116deg) brightness(109%) contrast(109%)`; const darkFilter = `invert(48%) sepia(3%) saturate(4%) hue-rotate(326deg) brightness(110%) contrast(78%)`; const Player = () => { const dispatch = useDispatch(); const state = useSelector((store) => store.audio); const title = state.track ? state.track.id3.title || removeAudioExtension(state.track.originalFileName) : null; const [isCollapsed, setIsCollapsed] = useState(false); return (

{secondsToHMS(state.currentTime)}

{ dispatch(actionSetCurrentTime(+e.target.value)); }} /> setIsCollapsed(!isCollapsed)} />
{!isCollapsed ? (

{title ?? "Here is track"}

Here is playlist

dispatch(actionPrevTrack())} /> dispatch( actionTogglePlay( state.isPlaying ? false : true ) ) } /> dispatch(actionNextTrack())} /> dispatch(actionToggleRepeat(!state.isRepeated)) } />
dispatch(actionSetVolume(state.volume ? 0 : 1)) } /> { dispatch(actionSetVolume(+e.target.value)); }} />
) : null}
); }; export default Player;