diff --git a/ui/src/album/AlbumDetails.js b/ui/src/album/AlbumDetails.js index d2682575e..19ed6102e 100644 --- a/ui/src/album/AlbumDetails.js +++ b/ui/src/album/AlbumDetails.js @@ -3,7 +3,7 @@ import { Card, CardContent, CardMedia, Typography } from '@material-ui/core' import { useTranslate } from 'react-admin' import subsonic from '../subsonic' import { DurationField, formatRange } from '../common' -import { ArtistLinkField } from './ArtistLinkField' +import { ArtistLinkField } from '../common' const AlbumDetails = ({ classes, record }) => { const translate = useTranslate() diff --git a/ui/src/album/AlbumGridView.js b/ui/src/album/AlbumGridView.js index 366ee14d2..b6fa35c80 100644 --- a/ui/src/album/AlbumGridView.js +++ b/ui/src/album/AlbumGridView.js @@ -6,7 +6,7 @@ import { Link } from 'react-router-dom' import { linkToRecord, Loading } from 'react-admin' import { withContentRect } from 'react-measure' import subsonic from '../subsonic' -import { ArtistLinkField } from './ArtistLinkField' +import { ArtistLinkField } from '../common' import AlbumContextMenu from './AlbumContextMenu.js' const useStyles = makeStyles((theme) => ({ diff --git a/ui/src/album/AlbumListView.js b/ui/src/album/AlbumListView.js index 40a7ff396..1816ec3cc 100644 --- a/ui/src/album/AlbumListView.js +++ b/ui/src/album/AlbumListView.js @@ -3,13 +3,17 @@ import { BooleanField, Datagrid, DateField, - FunctionField, NumberField, Show, SimpleShowLayout, TextField, } from 'react-admin' -import { DurationField, RangeField, SimpleList } from '../common' +import { + ArtistLinkField, + DurationField, + RangeField, + SimpleList, +} from '../common' import { useMediaQuery } from '@material-ui/core' import AlbumContextMenu from './AlbumContextMenu' @@ -46,7 +50,7 @@ const AlbumListView = ({ hasShow, hasEdit, hasList, ...rest }) => { ) : ( } rowClick={'show'} {...rest}> - r.albumArtist} /> + {isDesktop && } {isDesktop && } diff --git a/ui/src/album/ArtistLinkField.js b/ui/src/album/ArtistLinkField.js deleted file mode 100644 index 262c1d145..000000000 --- a/ui/src/album/ArtistLinkField.js +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import { Link } from 'react-admin' - -export const ArtistLinkField = ({ record, className }) => { - const filter = { artist_id: record.albumArtistId } - const url = `/album?filter=${JSON.stringify( - filter - )}&order=ASC&sort=maxYear&displayedFilters={"compilation":true}` - return ( - e.stopPropagation()} className={className}> - {record.albumArtist} - - ) -} - -ArtistLinkField.propTypes = { - className: PropTypes.string, - source: PropTypes.string, -} - -ArtistLinkField.defaultProps = { - source: 'artistId', - addLabel: true, -} diff --git a/ui/src/artist/ArtistList.js b/ui/src/artist/ArtistList.js index fecd8c61e..3d61dca5b 100644 --- a/ui/src/artist/ArtistList.js +++ b/ui/src/artist/ArtistList.js @@ -7,7 +7,7 @@ import { SearchInput, TextField, } from 'react-admin' -import { Pagination, Title } from '../common' +import { artistLink, Pagination, Title } from '../common' const ArtistFilter = (props) => ( @@ -15,13 +15,6 @@ const ArtistFilter = (props) => ( ) -const artistRowClick = (id) => { - const filter = { artist_id: id } - return `/album?filter=${JSON.stringify( - filter - )}&order=ASC&sort=maxYear&displayedFilters={"compilation":true}` -} - const ArtistList = (props) => ( ( perPage={15} pagination={} > - + diff --git a/ui/src/common/ArtistLinkField.js b/ui/src/common/ArtistLinkField.js new file mode 100644 index 000000000..bdba17124 --- /dev/null +++ b/ui/src/common/ArtistLinkField.js @@ -0,0 +1,33 @@ +import React from 'react' +import PropTypes from 'prop-types' +import { Link } from 'react-admin' + +const artistLink = (id) => { + return `/album?filter={"artist_id":"${id}"}&order=ASC&sort=maxYear&displayedFilters={"compilation":true}` +} + +const ArtistLinkField = ({ record, className }) => { + return ( + e.stopPropagation()} + className={className} + > + {record.albumArtist} + + ) +} + +ArtistLinkField.propTypes = { + className: PropTypes.string, + source: PropTypes.string, +} + +ArtistLinkField.defaultProps = { + source: 'artistId', + addLabel: true, +} + +export { artistLink } + +export default ArtistLinkField diff --git a/ui/src/common/index.js b/ui/src/common/index.js index 382c52353..f54c19543 100644 --- a/ui/src/common/index.js +++ b/ui/src/common/index.js @@ -5,6 +5,7 @@ import Pagination from './Pagination' import PlayButton from './PlayButton' import SimpleList from './SimpleList' import RangeField, { formatRange } from './RangeField' +import ArtistLinkField, { artistLink } from './ArtistLinkField' import SongDetails from './SongDetails' import SizeField from './SizeField' import DocLink from './DocLink' @@ -21,4 +22,6 @@ export { SongDetails, DocLink, formatRange, + ArtistLinkField, + artistLink, }