import { createSignal, Show } from 'solid-js' import { clsx } from 'clsx' import { useOutsideClickHandler } from '../../../utils/useOutsideClickHandler' import { Icon } from '../../_shared/Icon' import styles from './AudioPlayer.module.scss' export const PlayerHeader = (props) => { let volumeRef: HTMLInputElement const volumeContainerRef: { current: HTMLDivElement } = { current: null } const { getCurrentTrack, onPlayMedia, gainNode, playPrevTrack, playNextTrack } = props const [isVolumeBarOpened, setIsVolumeBarOpened] = createSignal(false) const handleVolumeChange = () => { gainNode.gain.value = Number(volumeRef.value) } const toggleVolumeBar = () => { setIsVolumeBarOpened(!isVolumeBarOpened()) } useOutsideClickHandler({ containerRef: volumeContainerRef, predicate: () => isVolumeBarOpened(), handler: () => toggleVolumeBar() }) return (
{getCurrentTrack().title}
(volumeContainerRef.current = el)} class={styles.volumeContainer}>
) }