subtracks/src/components/ArtistsList.tsx
austinried f19cbabac4 tabs on tabs??
moving storage/model/stuff around
2021-06-19 11:32:23 +09:00

61 lines
1.3 KiB
TypeScript

import React from 'react';
import { Button, FlatList, Text, View } from 'react-native';
import { useRecoilValue, useResetRecoilState } from 'recoil';
import { artistsState, useUpdateArtists } from '../state/artists';
import { Artist } from '../models/music';
const ArtistItem: React.FC<{ item: Artist } > = ({ item }) => (
<View>
<Text>{item.id}</Text>
<Text style={{
fontSize: 60,
paddingBottom: 400,
}}>{item.name}</Text>
</View>
);
const List = () => {
const artists = useRecoilValue(artistsState);
const renderItem: React.FC<{ item: Artist }> = ({ item }) => (
<ArtistItem item={item} />
);
return (
<FlatList
data={artists}
renderItem={renderItem}
keyExtractor={item => item.id}
/>
);
}
const ListPlusControls = () => {
const resetArtists = useResetRecoilState(artistsState);
const updateArtists = useUpdateArtists();
return (
<View>
<Button
title='Reset to default'
onPress={resetArtists}
/>
<Button
title='Update from API'
onPress={updateArtists}
/>
<List />
</View>
);
}
const ArtistsList = () => (
<View>
<React.Suspense fallback={<Text>Loading...</Text>}>
<ListPlusControls />
</React.Suspense>
</View>
)
export default ArtistsList;