Display genres

This commit is contained in:
Mosh Hamedani 2023-03-02 07:25:08 -08:00
parent ceec031693
commit 7d6f205614
5 changed files with 29 additions and 11 deletions

View file

@ -10,12 +10,16 @@ function App() {
base: `"nav" "main"`, base: `"nav" "main"`,
lg: `"nav nav" "aside main"`, lg: `"nav nav" "aside main"`,
}} }}
templateColumns={{
base: '1fr',
lg: '200px 1fr'
}}
> >
<GridItem area="nav"> <GridItem area="nav">
<NavBar /> <NavBar />
</GridItem> </GridItem>
<Show above="lg"> <Show above="lg">
<GridItem area="aside"> <GridItem area="aside" paddingX={5}>
<GenreList /> <GenreList />
</GridItem> </GridItem>
</Show> </Show>

View file

@ -7,7 +7,7 @@ interface Props {
const GameCardContainer = ({ children }: Props) => { const GameCardContainer = ({ children }: Props) => {
return ( return (
<Box width="300px" borderRadius={10} overflow="hidden"> <Box borderRadius={10} overflow="hidden">
{children} {children}
</Box> </Box>
); );

View file

@ -14,7 +14,7 @@ const GameGrid = () => {
<SimpleGrid <SimpleGrid
columns={{ sm: 1, md: 2, lg: 3, xl: 5 }} columns={{ sm: 1, md: 2, lg: 3, xl: 5 }}
padding="10px" padding="10px"
spacing={10} spacing={3}
> >
{isLoading && {isLoading &&
skeletons.map((skeleton) => ( skeletons.map((skeleton) => (

View file

@ -1,13 +1,26 @@
import useGenres from '../hooks/useGenres' import { HStack, Image, List, ListItem, Text } from "@chakra-ui/react";
import useGenres from "../hooks/useGenres";
import getCroppedImageUrl from "../services/image-url";
const GenreList = () => { const GenreList = () => {
const {data} = useGenres(); const { data } = useGenres();
return ( return (
<ul> <List>
{data.map(genre => <li key={genre.id}>{genre.name}</li>)} {data.map((genre) => (
</ul> <ListItem key={genre.id} paddingY='5px'>
) <HStack>
} <Image
boxSize="32px"
borderRadius={8}
src={getCroppedImageUrl(genre.image_background)}
/>
<Text fontSize='lg'>{genre.name}</Text>
</HStack>
</ListItem>
))}
</List>
);
};
export default GenreList export default GenreList;

View file

@ -3,6 +3,7 @@ import useData from "./useData";
export interface Genre { export interface Genre {
id: number; id: number;
name: string; name: string;
image_background: string;
} }
const useGenres = () => useData<Genre>('/genres'); const useGenres = () => useData<Genre>('/genres');