import { Fragment, useMemo } from 'react' import type { MediaPlaylist } from 'hls.js' import map from 'lodash/map' import { OutsideClick } from 'features/OutsideClick' import { useToggle } from 'hooks' import { isMobileDevice } from 'config/userAgent' import { AudioTrackItem, AudioTrackItemText, AudioTracksWrapper, ScHeader, ScModal, SelectedAudioTrack, IconArrow, } from './styled' export type AudioTracksProps = { audioTracks: Array, changeAudioTrack: (trackId: number) => void, isFullscreen?: boolean, selectedAudioTrack: MediaPlaylist, } export const AudioTracks = ({ audioTracks, changeAudioTrack, isFullscreen, selectedAudioTrack, }: AudioTracksProps) => { const { close, isOpen, open, } = useToggle() const AudioTracksList = useMemo(() => ( map(audioTracks, (track) => ( { changeAudioTrack(track.id) close() }} > {track.name} )) ), [ audioTracks, changeAudioTrack, close, isFullscreen, selectedAudioTrack?.id, ]) const content = isMobileDevice && !isFullscreen ? ( Audio {AudioTracksList} ) : ( {isOpen && ( {AudioTracksList} )} ) return ( {audioTracks?.length > 1 && ( {!selectedAudioTrack && audioTracks[0].name} {selectedAudioTrack?.name} )} {content} ) }