import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import React, {useState, useEffect} from 'react'; import {faVolumeDown, faVolumeUp, faRandom, faStepBackward, faStopCircle, faStepForward, faPlayCircle, faRepeat} from '@fortawesome/free-solid-svg-icons' import { store } from '../store/store'; import {actionFullGetDuration, actionFullSetTrack, actionFullPlay, actionFullPause, actionFullSetVolume, actionFullSetCurrentTime } from '../store/playerReducer'; import {Provider, connect} from 'react-redux'; function msToTime(duration) { let hours,minutes,seconds; hours = Math.floor(duration / 3600); minutes = Math.floor((duration - 3600 * hours) / 60); seconds = Math.floor((duration - 3600 * hours - 60 * minutes) % 60); hours = (hours < 10) ? "0" + hours : hours; minutes = (minutes < 10) ? "0" + minutes : minutes; seconds = (seconds < 10) ? "0" + seconds : seconds; return minutes + ":" + seconds; } export let NowPlayingPlayer = (props) => { const [volume, setVolume] = useState(10); // let duration; // useEffect(() => { // if (!store.getState().player?.duration) { // duration = msToTime(store.getState()?.player?.track?.src?.duration) // } // }, []); return(
{props.track?.name|| 'Track Name' }
{props.track?.id3?.artist || 'Artist' }
00:00 setDuration(e.target.value)} /> {msToTime(props.duration) !== 'NaN'? msToTime(props.duration) : '00:00'}
{ setVolume(e.target.value); if (store.getState()?.player?.track) store.dispatch(actionFullSetVolume(volume)) }} />
{ if(store.getState()?.player?.isPlaying === true) { store.dispatch(actionFullPause()); //setPlay(true) } else{ store.dispatch(actionFullPlay()); //setPlay(false) } }} >
) } function mapStateToProps (state) { return { track: state.player?.track, duration: state.player?.duration, } } //export const Š”NowPlayingPlayer = connect(mapStateToProps)(NowPlayingPlayer) export const Š”NowPlayingPlayer = connect(state => ({track: state.player?.track || [], duration: state.player?.duration || [], isPlaying: state.player?.isPlaying || false}) )(NowPlayingPlayer);