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:
Amaury
2023-05-26 10:50:25 +02:00
committed by GitHub
parent 5baf9309c6
commit 97bf7bdac8
26 changed files with 902 additions and 442 deletions
+51
View File
@@ -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;