Grid en artist
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import React, {Fragment, useEffect, useState} from 'react'
|
||||
import React, {useEffect, useState} from 'react'
|
||||
import queryString from "query-string";
|
||||
|
||||
import {getArtist, getArtistDiscs} from "../services/entity_service";
|
||||
@@ -8,12 +8,17 @@ import {Paginate} from "../components/Paginate";
|
||||
import {EntityList} from "../components/EntityList";
|
||||
import {Entity} from "../components/Entity";
|
||||
import {Comments} from "../components/Comments";
|
||||
import {Grid, RowCol} from '../components/Grid';
|
||||
|
||||
|
||||
const Discs = (props) => {
|
||||
const discs = props.discs ? props.discs : null;
|
||||
const paginate = props.paginate ? props.paginate : null;
|
||||
|
||||
if (!props.render) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const handlePageChanged = (page) => {
|
||||
props.onPageChanged(page);
|
||||
}
|
||||
@@ -21,12 +26,15 @@ const Discs = (props) => {
|
||||
let discsComponent = <EntityList placeholder={true} size={16} cover={true} grid={true}/>;
|
||||
if (discs) {
|
||||
if(discs.length > 0){
|
||||
const items = discs.map((disc) => ({
|
||||
'cover': <CoverArt disc={disc} size={3}/>,
|
||||
'link': `/disc/${disc.id}`,
|
||||
'title': disc.title,
|
||||
'subtitle': disc.artist.name
|
||||
}));
|
||||
const items = discs.map((disc) => {
|
||||
const cover = <CoverArt disc={disc} size={3}/>;
|
||||
return {
|
||||
'cover': cover,
|
||||
'link': `/disc/${disc.id}`,
|
||||
'title': disc.title,
|
||||
'subtitle': disc.artist.name
|
||||
}
|
||||
});
|
||||
const list = [{
|
||||
'items': items
|
||||
}]
|
||||
@@ -47,13 +55,14 @@ const Discs = (props) => {
|
||||
onPageChanged={handlePageChanged} makeLink={props.makeLink}/>
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
<div className='discs'>
|
||||
<h2>Discos</h2>
|
||||
{discsComponent}
|
||||
{paginateContent}
|
||||
</div>
|
||||
);
|
||||
<Grid>
|
||||
<RowCol><h2>Discos</h2></RowCol>
|
||||
<RowCol>{discsComponent}</RowCol>
|
||||
<RowCol>{paginateContent}</RowCol>
|
||||
</Grid>
|
||||
)
|
||||
}
|
||||
|
||||
const Artist = (props) => {
|
||||
@@ -63,7 +72,7 @@ const Artist = (props) => {
|
||||
subtitle={[artist.type, artist.country].filter(Boolean).join(' - ')}
|
||||
tags={artist.tags.map((tag) => (tag.name))}/>
|
||||
}else {
|
||||
return <Fragment/>
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,10 +118,14 @@ export const ArtistView = (props) => {
|
||||
|
||||
|
||||
return (
|
||||
<div className='artist-view'>
|
||||
<Artist artist={artist}/>
|
||||
{artist && <Discs discs={discs} paginate={discsPaginate} onPageChanged={handleDiscPageChanged} makeLink={makeLink} navigateToDisc={handleNavigateToDisc}/>}
|
||||
<Comments/>
|
||||
</div>
|
||||
<Grid>
|
||||
<RowCol><Artist artist={artist}/></RowCol>
|
||||
<RowCol>
|
||||
<Discs render={artist} discs={discs} paginate={discsPaginate}
|
||||
onPageChanged={handleDiscPageChanged} makeLink={makeLink}
|
||||
navigateToDisc={handleNavigateToDisc}/>
|
||||
</RowCol>
|
||||
<RowCol><Comments render={artist}/></RowCol>
|
||||
</Grid>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user