mirror of
https://github.com/navidrome/navidrome.git
synced 2025-06-10 12:22:19 +03:00
Show disc subtitles (if available)
This commit is contained in:
parent
0d9361734f
commit
4355f4fe2d
@ -7,10 +7,18 @@ import {
|
|||||||
TextField,
|
TextField,
|
||||||
useListController,
|
useListController,
|
||||||
DatagridLoading,
|
DatagridLoading,
|
||||||
|
DatagridBody,
|
||||||
|
DatagridRow,
|
||||||
} from 'react-admin'
|
} from 'react-admin'
|
||||||
import classnames from 'classnames'
|
import classnames from 'classnames'
|
||||||
import { useDispatch } from 'react-redux'
|
import { useDispatch } from 'react-redux'
|
||||||
import { Card, useMediaQuery } from '@material-ui/core'
|
import {
|
||||||
|
Card,
|
||||||
|
useMediaQuery,
|
||||||
|
TableRow,
|
||||||
|
TableCell,
|
||||||
|
Typography,
|
||||||
|
} from '@material-ui/core'
|
||||||
import { makeStyles } from '@material-ui/core/styles'
|
import { makeStyles } from '@material-ui/core/styles'
|
||||||
import { playAlbum } from '../audioplayer'
|
import { playAlbum } from '../audioplayer'
|
||||||
import { DurationField } from '../common'
|
import { DurationField } from '../common'
|
||||||
@ -60,6 +68,31 @@ const trackName = (r) => {
|
|||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const SongDatagridRow = (props) => {
|
||||||
|
const { record, children } = props
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{record.discSubtitle && record.trackNumber === 1 && (
|
||||||
|
<TableRow>
|
||||||
|
<TableCell colSpan={children.length + 1}>
|
||||||
|
<Typography variant="h6">
|
||||||
|
{record.discSubtitle} (disc {record.discNumber})
|
||||||
|
</Typography>
|
||||||
|
</TableCell>
|
||||||
|
</TableRow>
|
||||||
|
)}
|
||||||
|
<DatagridRow {...props} />
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const SongsDatagridBody = (props) => (
|
||||||
|
<DatagridBody {...props} row={<SongDatagridRow />} />
|
||||||
|
)
|
||||||
|
const SongsDatagrid = (props) => (
|
||||||
|
<Datagrid {...props} body={<SongsDatagridBody />} />
|
||||||
|
)
|
||||||
|
|
||||||
const AlbumSongs = (props) => {
|
const AlbumSongs = (props) => {
|
||||||
const classes = useStyles(props)
|
const classes = useStyles(props)
|
||||||
const classesToolbar = useStylesListToolbar(props)
|
const classesToolbar = useStylesListToolbar(props)
|
||||||
@ -106,7 +139,7 @@ const AlbumSongs = (props) => {
|
|||||||
size={'small'}
|
size={'small'}
|
||||||
/>
|
/>
|
||||||
) : (
|
) : (
|
||||||
<Datagrid
|
<SongsDatagrid
|
||||||
expand={!isXsmall && <SongDetails />}
|
expand={!isXsmall && <SongDetails />}
|
||||||
rowClick={(id) => dispatch(playAlbum(data, ids, id))}
|
rowClick={(id) => dispatch(playAlbum(data, ids, id))}
|
||||||
{...controllerProps}
|
{...controllerProps}
|
||||||
@ -125,7 +158,7 @@ const AlbumSongs = (props) => {
|
|||||||
)}
|
)}
|
||||||
{isDesktop && <TextField source="artist" />}
|
{isDesktop && <TextField source="artist" />}
|
||||||
<DurationField source="duration" />
|
<DurationField source="duration" />
|
||||||
</Datagrid>
|
</SongsDatagrid>
|
||||||
)}
|
)}
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user