Show year in album tile if album grid is filtered bu artist

This commit is contained in:
Deluan 2020-06-08 20:37:18 -04:00
parent b636565c62
commit b54d4c75ae
1 changed files with 25 additions and 7 deletions

View File

@ -1,4 +1,5 @@
import React, { useState } from 'react'
import { useLocation } from 'react-router-dom'
import {
GridList,
GridListTile,
@ -8,7 +9,7 @@ import {
import { makeStyles } from '@material-ui/core/styles'
import withWidth from '@material-ui/core/withWidth'
import { Link } from 'react-router-dom'
import { linkToRecord, Loading } from 'react-admin'
import { linkToRecord, Loading, useListParams } from 'react-admin'
import { withContentRect } from 'react-measure'
import subsonic from '../subsonic'
import { ArtistLinkField } from '../common'
@ -71,7 +72,7 @@ const Cover = withContentRect('bounds')(
}
)
const AlbumGridTile = ({ record, basePath }) => {
const AlbumGridTile = ({ showArtist, record, basePath }) => {
const isDesktop = useMediaQuery((theme) => theme.breakpoints.up('md'))
const classes = useStyles()
const [visible, setVisible] = useState(false)
@ -93,9 +94,14 @@ const AlbumGridTile = ({ record, basePath }) => {
title={record.name}
subtitle={
<div className={classes.albumArtistName}>
<ArtistLinkField record={record} className={classes.artistLink}>
{record.albumArtist}
</ArtistLinkField>
{showArtist ? (
<ArtistLinkField
record={record}
className={classes.artistLink}
/>
) : (
record.maxYear || ''
)}
</div>
}
actionIcon={<AlbumContextMenu record={record} color={'white'} />}
@ -106,8 +112,16 @@ const AlbumGridTile = ({ record, basePath }) => {
)
}
const LoadedAlbumGrid = ({ ids, data, basePath, width }) => {
const LoadedAlbumGrid = ({ ids, data, basePath, width, resource }) => {
const classes = useStyles()
const location = useLocation()
const [listParams] = useListParams({
resource,
location,
})
const isArtistView = !!(listParams.filter && listParams.filter.artist_id)
return (
<div className={classes.root}>
@ -119,7 +133,11 @@ const LoadedAlbumGrid = ({ ids, data, basePath, width }) => {
>
{ids.map((id) => (
<GridListTile className={classes.gridListTile} key={id}>
<AlbumGridTile record={data[id]} basePath={basePath} />
<AlbumGridTile
record={data[id]}
basePath={basePath}
showArtist={!isArtistView}
/>
</GridListTile>
))}
</GridList>