mirror of
https://github.com/mosh-hamedani/game-hub.git
synced 2026-05-21 12:14:32 +02:00
Display genres
This commit is contained in:
parent
ceec031693
commit
7d6f205614
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -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) => (
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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');
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue