Feature/adc/#192 barre de recherche (#201)
* context and react query add to searchView * handle empty result + back * #192 - New card components and history fetch + dummy suggestions fetch * respoonsive design + filters map * artist details view + translations + SongData mapping fix + items limitation * history search back and front + cards + fix * fixed useless history entries * clean code * clean code * fix pr: SearchHistory new type related fixes * simplified SearchResultComponent (useEffect removed, condition simplified to trigger different 'modes' * search re-do onPress history cards + scoreView obj map * clean code API.ts * fix pr + search history behavior * added utility function to get song suggestions with artists and fixed error types along the way * fix in songrow the title didn't shrinked when not enough space on screen * removed redirect callback from ArtistCard to ArtistResults * moved the callback from genre card grid to searchresult and implemented history for songs * SearchBar is now updating input search following stringQuery * added scroll view to have the complete background * Added the route props for query in Searchview * fixed robot test --------- Co-authored-by: Clément Le Bihan <clement.lebihan773@gmail.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import React from "react";
|
||||
import Card from './Card';
|
||||
import { VStack, Text, Box, Icon } from 'native-base';
|
||||
import { useTheme } from "native-base";
|
||||
import { Ionicons } from "@expo/vector-icons";
|
||||
import API from "../API";
|
||||
type GenreCardProps = {
|
||||
icon: string;
|
||||
name: string;
|
||||
onPress: () => void;
|
||||
}
|
||||
|
||||
const GenreCard = (props: GenreCardProps) => {
|
||||
const { icon, name } = props;
|
||||
const theme = useTheme();
|
||||
|
||||
|
||||
return (
|
||||
<Card
|
||||
shadow={3}
|
||||
onPress={props.onPress}
|
||||
>
|
||||
<VStack m={1.5} space={3} alignItems="center">
|
||||
<Box
|
||||
bg={theme.colors.primary[400]}
|
||||
w={20}
|
||||
h={20}
|
||||
borderRadius="full"
|
||||
display="flex"
|
||||
alignItems="center"
|
||||
justifyContent="center"
|
||||
>
|
||||
<Icon size={"md"} as={Ionicons} name={icon} />
|
||||
</Box>
|
||||
<VStack>
|
||||
<Text isTruncated bold fontSize="md" noOfLines={2} height={50}>
|
||||
{name}
|
||||
</Text>
|
||||
</VStack>
|
||||
</VStack>
|
||||
</Card>
|
||||
);
|
||||
}
|
||||
|
||||
GenreCard.defaultProps = {
|
||||
icon: 'https://picsum.photos/200',
|
||||
name: 'Genre',
|
||||
onPress: () => { }
|
||||
}
|
||||
|
||||
export default GenreCard;
|
||||
Reference in New Issue
Block a user