import React, { useCallback } from 'react'; import useQueue from 'utility/useQueue'; import { View, Text } from 'react-native'; import styled, { css } from 'styled-components/native'; import useCurrentTrack from 'utility/useCurrentTrack'; import TouchableHandler from 'components/TouchableHandler'; import TrackPlayer from 'react-native-track-player'; import { THEME_COLOR } from 'CONSTANTS'; const QueueItem = styled.View<{ active?: boolean, alreadyPlayed?: boolean }>` padding: 10px; border-bottom-width: 1px; border-bottom-color: #eee; ${props => props.active && css` font-weight: 900; background-color: ${THEME_COLOR}16; padding: 20px 35px; margin: 0 -25px; `} ${props => props.alreadyPlayed && css` opacity: 0.25; `} `; export default function Queue() { const queue = useQueue(); const currentTrack = useCurrentTrack(); const currentIndex = queue.findIndex(d => d.id === currentTrack?.id); const playTrack = useCallback(async (trackId: string) => { await TrackPlayer.skip(trackId); await TrackPlayer.play(); }, []); return ( Queue {queue.map((track, i) => ( {track.title} {track.artist} ))} ); }