import { useNavigation } from '@react-navigation/native'; import { useAtomValue } from 'jotai/utils'; import React, { useEffect, useState } from 'react'; import { ActivityIndicator, GestureResponderEvent, Image, Pressable, Text, useWindowDimensions, View, } from 'react-native'; import { useSetQueue } from '../../hooks/trackplayer'; import { albumAtomFamily } from '../../state/music'; import { currentTrackAtom } from '../../state/trackplayer'; import colors from '../../styles/colors'; import text from '../../styles/text'; import AlbumArt from './AlbumArt'; import Button from './Button'; import GradientBackground from './GradientBackground'; import ImageGradientScrollView from './ImageGradientScrollView'; const SongItem: React.FC<{ id: string; title: string; artist?: string; track?: number; onPress: (event: GestureResponderEvent) => void; }> = ({ id, title, artist, onPress }) => { const [opacity, setOpacity] = useState(1); const currentTrack = useAtomValue(currentTrackAtom); return ( setOpacity(0.6)} onPressOut={() => setOpacity(1)} onLongPress={() => setOpacity(1)} style={{ flex: 1, opacity, }}> {title} {artist} {/* {secondsToTime(duration || 0)} */} ); }; const AlbumDetails: React.FC<{ id: string; }> = ({ id }) => { const album = useAtomValue(albumAtomFamily(id)); const layout = useWindowDimensions(); const setQueue = useSetQueue(); const coverSize = layout.width - layout.width / 2.5; if (!album) { return No Album; } return ( {album.name} {album.artist} {album.year ? ` • ${album.year}` : ''}