Show DiscSubtitle even if the album has only one disc.

Closes #947
This commit is contained in:
Deluan
2021-06-25 11:30:24 -04:00
parent da2334e10c
commit b684a47f80
+13 -3
View File
@@ -52,6 +52,15 @@ const DiscSubtitleRow = ({
const handlePlayDisc = (discNumber) => () => { const handlePlayDisc = (discNumber) => () => {
onClick(discNumber) onClick(discNumber)
} }
let subtitle = []
if (record.discNumber > 0) {
subtitle.push(record.discNumber)
}
if (record.discSubtitle) {
subtitle.push(record.discSubtitle)
}
return ( return (
<TableRow <TableRow
hover hover
@@ -61,8 +70,7 @@ const DiscSubtitleRow = ({
<TableCell colSpan={colSpan}> <TableCell colSpan={colSpan}>
<Typography variant="h6" className={classes.subtitle}> <Typography variant="h6" className={classes.subtitle}>
<AlbumIcon className={classes.discIcon} fontSize={'small'} /> <AlbumIcon className={classes.discIcon} fontSize={'small'} />
{record.discNumber} {subtitle.join(': ')}
{record.discSubtitle && `: ${record.discSubtitle}`}
</Typography> </Typography>
</TableCell> </TableCell>
<TableCell> <TableCell>
@@ -148,11 +156,13 @@ const SongDatagridBody = ({
if (!ids) { if (!ids) {
return new Set() return new Set()
} }
let foundSubtitle = false
const set = new Set( const set = new Set(
ids ids
.filter((i) => data[i]) .filter((i) => data[i])
.reduce((acc, id) => { .reduce((acc, id) => {
const last = acc && acc[acc.length - 1] const last = acc && acc[acc.length - 1]
foundSubtitle = foundSubtitle || data[id].discSubtitle
if ( if (
acc.length === 0 || acc.length === 0 ||
(last && data[id].discNumber !== data[last].discNumber) (last && data[id].discNumber !== data[last].discNumber)
@@ -162,7 +172,7 @@ const SongDatagridBody = ({
return acc return acc
}, []) }, [])
) )
if (!showDiscSubtitles || set.size < 2) { if (!showDiscSubtitles || (set.size < 2 && !foundSubtitle)) {
set.clear() set.clear()
} }
return set return set