import {
useState
} from 'react'
import ReactPlayer from 'react-player'
import { ThemeColor, Theme } from './types'
import { css } from '@emotion/css'
import { PlayIcon, PauseIcon } from './icons'
import { getSubstring } from './utils'
export function AudioPlayer({
profile,
url,
cover,
theme
}) {
const isDarkTheme = theme === Theme.dark
const audioPlayerBg = isDarkTheme ? '#3f3f3f' : ThemeColor.lightGray
const fontTitleColor = isDarkTheme ? '#ffffff' : ThemeColor.lightBlack
const fontTrackColor = isDarkTheme ? 'rgba(220, 220, 220, .5)' : `rgba(70, 70, 70, .75)`
const playIconBgColor = isDarkTheme ? 'rgba(255, 255, 255, .25)' : `rgba(70, 70, 70, .75)`
const [isPlaying, setIsPlaying] = useState(false)
function updateIsPlaying() {
setIsPlaying(!isPlaying)
}
return (
{
cover ? (

) : (
)
}
{profile.metadata.displayName}
{/*
{getSubstring(publication?.metadata?.name, 30)}
*/}
{
isPlaying ? (
) : (
)
}
)
}
const playIconWrapperStyle = css`
display: flex;
justify-content: flex-end;
flex: 1;
margin-left: 5px;
padding-right: 30px;
@media (max-width: 420px) {
padding-right: 15px;
}
`
const audioMetadataContainerStyle = css`
padding: 10px;
`
function audioMetadataArtistStyle(color) {
return css`
font-size: 22px;
font-weight: 700;
margin: 0px;
color: ${color};
`
}
function audioMetadataTrackStyle(color) {
return css`
font-size: 14px;
margin: 0;
color: ${color};
`
}
const coverImageContainerStyle = css`
padding: 10px;
position: relative;
`
const audioImaveStyle = css`
width: 120px;
height: 120px;
border-radius: 6px;
`
function playIconContainerStyle(bgColor) {
return css`
background-color: ${bgColor};
border-radius: 50px;
width: 65px;
height: 65px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: opacity .25s;
&:hover {
opacity: .9;
}
`
}
function controlsStyle (bgColor) {
return css`
height: 140px;
background-color: ${bgColor};
display: flex;
align-items: center;
`
}
const playerStyle = css`
height: 0 !important;
width: 0 !important;
`