15b289201a
If files cannot be sorted by disc and track id, try by artist then title. One use case is a loose compilation of files with same album, album artist, and no track numbers. File order was then undetermined, in practice depended on insertion order in the database.
50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
import React from 'react'
|
|
import {
|
|
ReferenceManyField,
|
|
ShowContextProvider,
|
|
useShowContext,
|
|
useShowController,
|
|
} from 'react-admin'
|
|
import AlbumSongs from './AlbumSongs'
|
|
import AlbumDetails from './AlbumDetails'
|
|
import AlbumActions from './AlbumActions'
|
|
|
|
const AlbumShowLayout = (props) => {
|
|
const { loading, ...context } = useShowContext(props)
|
|
const { record } = context
|
|
|
|
return (
|
|
<>
|
|
{record && <AlbumDetails {...context} />}
|
|
{record && (
|
|
<ReferenceManyField
|
|
{...context}
|
|
addLabel={false}
|
|
reference="albumSong"
|
|
target="album_id"
|
|
sort={{ field: 'album', order: 'ASC' }}
|
|
perPage={0}
|
|
pagination={null}
|
|
>
|
|
<AlbumSongs
|
|
resource={'albumSong'}
|
|
exporter={false}
|
|
actions={<AlbumActions record={record} />}
|
|
/>
|
|
</ReferenceManyField>
|
|
)}
|
|
</>
|
|
)
|
|
}
|
|
|
|
const AlbumShow = (props) => {
|
|
const controllerProps = useShowController(props)
|
|
return (
|
|
<ShowContextProvider value={controllerProps}>
|
|
<AlbumShowLayout {...props} {...controllerProps} />
|
|
</ShowContextProvider>
|
|
)
|
|
}
|
|
|
|
export default AlbumShow
|