import { useNavigation } from '@react-navigation/native' import { useAtomValue } from 'jotai/utils' import React, { useEffect } from 'react' import { Pressable, StyleSheet } from 'react-native' import { Text } from 'react-native' import { Artist } from '@app/models/music' import { artistsAtom, artistsUpdatingAtom, useUpdateArtists } from '@app/state/music' import font from '@app/styles/font' import ArtistArt from '@app/components/ArtistArt' import GradientFlatList from '@app/components/GradientFlatList' import colors from '@app/styles/colors' const ArtistItem: React.FC<{ item: Artist }> = ({ item }) => { const navigation = useNavigation() return ( navigation.navigate('ArtistView', { id: item.id, title: item.name })}> {item.name} ) } const ArtistItemLoader: React.FC<{ item: Artist }> = props => ( Loading...}> ) const ArtistsList = () => { const artists = useAtomValue(artistsAtom) const updating = useAtomValue(artistsUpdatingAtom) const updateArtists = useUpdateArtists() useEffect(() => { if (artists.length === 0) { updateArtists() } }) const renderItem: React.FC<{ item: Artist }> = ({ item }) => return ( item.id} onRefresh={updateArtists} refreshing={updating} overScrollMode="never" /> ) } const ArtistsTab = () => const styles = StyleSheet.create({ item: { flexDirection: 'row', alignItems: 'center', marginVertical: 6, marginLeft: 6, }, title: { fontFamily: font.regular, fontSize: 16, color: colors.text.primary, marginLeft: 12, }, }) export default ArtistsTab