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 {actionPlayerRandom, actionFullPlay, actionFullPause, actionFullSetVolume, actionPrevTrack, actionNextTrack, actionSetRepeat, actionSetRandom} from '../store/playerReducer'; import {Provider, connect} from 'react-redux'; import { audio } from './Tracks'; import img_album from '../images/default_album.gif'; import {Nav, Tab, Tabs} from "react-bootstrap"; 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(20); const [newCurrent, setNewCurrent] = useState(0) useEffect(() => { if (props.currentTime) audio.currentTime = newCurrent }, [newCurrent]); let album_photo = (props.track?.album?.photo) ? `http://player-api/storage/albums/${props.track?.album?.photo}` : img_album const [key, setKey] = useState('home'); return(
setKey(k)} className="mb-3 justify-content-center text-white" tabClassName="btn-dark" fill >
{/*
{props.track?.name|| 'Track Name' }
*/}
{props.track?.name|| 'Track Name' }
{props.track?.id3?.artist || 'Artist' }
{props.currentTime ? `0${((props.currentTime - props.currentTime % 60) / 60 % 60).toFixed() !== 'NaN' ? ((props.currentTime - props.currentTime % 60) / 60 % 60).toFixed() : '0'}:${(props.currentTime % 60).toFixed() > 9 ? '' : '0'}${(props.currentTime % 60).toFixed() !== 'NaN' ? (props.currentTime % 60).toFixed() : '0'}` : '--:--'} {props.track?.id3?.time || (msToTime(props.duration) !== 'NaN:NaN'? msToTime(props.duration) : '00:00')}
setNewCurrent(e.target.value)} onMouseUp={() => store.dispatch(actionFullPlay())} onMouseDown={() => store.dispatch(actionFullPause())}/>
{ setVolume(e.target.value); if (store.getState()?.player?.track) store.dispatch(actionFullSetVolume(volume)) }}/>
{ props.random === 1 ? store.dispatch(actionSetRandom(2)) : store.dispatch(actionSetRandom(1)) store.dispatch(actionPlayerRandom()); }}/>
store.dispatch(actionPrevTrack(props.track))}/>
{ if(store.getState()?.player?.isPlaying === true) { store.dispatch(actionFullPause()); } else{ store.dispatch(actionFullPlay()); } }}/>
{ store.dispatch(actionNextTrack({track: props.track, end:'false'})); }}/>
(props.repeat === 1 ? store.dispatch(actionSetRepeat(2)) : store.dispatch(actionSetRepeat(1)))}/>
asdasd
) } export const Š”NowPlayingPlayer = connect(state => ({track: state.player?.track || [], duration: state.player?.duration || '00:00', isPlaying: state.player?.isPlaying || false, currentTime: state.player?.currentTime || '00:00', repeat: state.player?.repeat || 1, random: state.player?.random || 1}) )(NowPlayingPlayer);