import { useNavigation } from '@react-navigation/native';
import { useAtomValue } from 'jotai/utils';
import React, { useEffect } from 'react';
import { FlatList, Pressable, Text, View } from 'react-native';
import FastImage from 'react-native-fast-image';
import LinearGradient from 'react-native-linear-gradient';
import { Album } from '../../models/music';
import { albumsAtom, albumsUpdatingAtom, useUpdateAlbums } from '../../state/music';
import colors from '../../styles/colors';
import textStyles from '../../styles/text';
import TopTabContainer from '../common/TopTabContainer';
const AlbumArt: React.FC<{
height: number,
width: number,
coverArtUri?: string
}> = ({ height, width, coverArtUri }) => {
const Placeholder = (
);
const CoverArt = (
);
return coverArtUri ? CoverArt : Placeholder;
}
const MemoAlbumArt = React.memo(AlbumArt);
const AlbumItem: React.FC<{
id: string;
name: string,
artist?: string,
coverArtUri?: string
} > = ({ id, name, artist, coverArtUri }) => {
const navigation = useNavigation();
const size = 125;
return (
navigation.navigate('AlbumView', { id })}
>
{name}
{artist}
);
}
const MemoAlbumItem = React.memo(AlbumItem);
const AlbumListRenderItem: React.FC<{ item: Album }> = ({ item }) => (
);
const AlbumsList = () => {
const albums = useAtomValue(albumsAtom);
const updating = useAtomValue(albumsUpdatingAtom);
const updateAlbums = useUpdateAlbums();
useEffect(() => {
if (albums.length === 0) {
updateAlbums();
}
});
return (
item.id}
numColumns={3}
removeClippedSubviews={true}
refreshing={updating}
onRefresh={updateAlbums}
/>
);
}
const AlbumsTab = () => (
Loading...}>
);
export default React.memo(AlbumsTab);