import CoverArt from '@app/components/CoverArt' import GradientBackground from '@app/components/GradientBackground' import ImageGradientScrollView from '@app/components/ImageGradientScrollView' import ListPlayerControls from '@app/components/ListPlayerControls' import NothingHere from '@app/components/NothingHere' import ListItem from '@app/components/ListItem' import { playlistAtomFamily, useCoverArtUri } from '@app/state/music' import { useSetQueue } from '@app/state/trackplayer' import colors from '@app/styles/colors' import font from '@app/styles/font' import { useNavigation } from '@react-navigation/native' import { useAtomValue } from 'jotai/utils' import React, { useEffect } from 'react' import { ActivityIndicator, StyleSheet, Text, View } from 'react-native' const PlaylistDetails: React.FC<{ id: string }> = ({ id }) => { const playlist = useAtomValue(playlistAtomFamily(id)) const setQueue = useSetQueue() const coverArtUri = useCoverArtUri() if (!playlist) { return <> } const Songs = () => ( <> {playlist.songs.map((s, i) => ( setQueue(playlist.songs, playlist.name, i)} /> ))} ) return ( {playlist.name} {playlist.comment ? {playlist.comment} : <>} {playlist.songs.length > 0 ? : } ) } const PlaylistViewFallback = () => ( ) const PlaylistView: React.FC<{ id: string title: string }> = ({ id, title }) => { const navigation = useNavigation() useEffect(() => { navigation.setOptions({ title }) }) return ( }> ) } const styles = StyleSheet.create({ container: { flex: 1, }, content: { alignItems: 'center', paddingTop: 10, paddingHorizontal: 10, }, title: { fontSize: 24, fontFamily: font.bold, color: colors.text.primary, marginTop: 12, textAlign: 'center', }, subtitle: { fontFamily: font.regular, color: colors.text.secondary, fontSize: 14, marginTop: 4, textAlign: 'center', }, cover: { height: 160, width: 160, }, songsContainer: { width: '100%', marginTop: 18, alignItems: 'center', }, controls: { marginTop: 20, }, songs: { marginTop: 26, marginBottom: 30, width: '100%', }, fallback: { alignItems: 'center', paddingTop: 100, }, nothingContainer: { height: 400, backgroundColor: 'green', justifyContent: 'center', alignItems: 'center', }, }) export default React.memo(PlaylistView)