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
1 changed files with 13 additions and 3 deletions

View File

@ -52,6 +52,15 @@ const DiscSubtitleRow = ({
const handlePlayDisc = (discNumber) => () => {
onClick(discNumber)
}
let subtitle = []
if (record.discNumber > 0) {
subtitle.push(record.discNumber)
}
if (record.discSubtitle) {
subtitle.push(record.discSubtitle)
}
return (
<TableRow
hover
@ -61,8 +70,7 @@ const DiscSubtitleRow = ({
<TableCell colSpan={colSpan}>
<Typography variant="h6" className={classes.subtitle}>
<AlbumIcon className={classes.discIcon} fontSize={'small'} />
{record.discNumber}
{record.discSubtitle && `: ${record.discSubtitle}`}
{subtitle.join(': ')}
</Typography>
</TableCell>
<TableCell>
@ -148,11 +156,13 @@ const SongDatagridBody = ({
if (!ids) {
return new Set()
}
let foundSubtitle = false
const set = new Set(
ids
.filter((i) => data[i])
.reduce((acc, id) => {
const last = acc && acc[acc.length - 1]
foundSubtitle = foundSubtitle || data[id].discSubtitle
if (
acc.length === 0 ||
(last && data[id].discNumber !== data[last].discNumber)
@ -162,7 +172,7 @@ const SongDatagridBody = ({
return acc
}, [])
)
if (!showDiscSubtitles || set.size < 2) {
if (!showDiscSubtitles || (set.size < 2 && !foundSubtitle)) {
set.clear()
}
return set