subtracks/app/screens/LibraryArtists.tsx
austinried 8b17ebe9c2 big ol' impl of zustand for settings/family states
still need to move track player state over for non-react access to that
2021-08-01 16:30:28 +09:00

44 lines
1.2 KiB
TypeScript

import GradientFlatList from '@app/components/GradientFlatList'
import ListItem from '@app/components/ListItem'
import { useUpdateArtists } from '@app/hooks/music'
import { useActiveListRefresh } from '@app/hooks/server'
import { Artist } from '@app/models/music'
import { artistsAtom, artistsUpdatingAtom } from '@app/state/music'
import { useAtomValue } from 'jotai/utils'
import React from 'react'
import { StyleSheet } from 'react-native'
const ArtistRenderItem: React.FC<{ item: Artist }> = ({ item }) => (
<ListItem item={item} showArt={true} showStar={false} listStyle="big" />
)
const ArtistsList = () => {
const artists = useAtomValue(artistsAtom)
const updating = useAtomValue(artistsUpdatingAtom)
const updateArtists = useUpdateArtists()
useActiveListRefresh(artists, updateArtists)
return (
<GradientFlatList
contentContainerStyle={styles.listContent}
data={artists}
renderItem={ArtistRenderItem}
keyExtractor={item => item.id}
onRefresh={updateArtists}
refreshing={updating}
overScrollMode="never"
/>
)
}
const styles = StyleSheet.create({
listContent: {
minHeight: '100%',
paddingHorizontal: 10,
paddingTop: 6,
},
})
export default ArtistsList