diff --git a/ui/src/album/AlbumDetails.js b/ui/src/album/AlbumDetails.js index 92243bb9..237c3134 100644 --- a/ui/src/album/AlbumDetails.js +++ b/ui/src/album/AlbumDetails.js @@ -4,8 +4,6 @@ import { CardContent, CardMedia, Collapse, - IconButton, - Tooltip, makeStyles, Typography, useMediaQuery, @@ -31,9 +29,7 @@ import { } from '../common' import config from '../config' import { intersperse } from '../utils' -import Link from '@material-ui/core/Link' -import MusicBrainz from '../icons/MusicBrainz' -import { ImLastfm2 } from 'react-icons/im' +import AlbumExternalLinks from './AlbumExternalLinks' const useStyles = makeStyles( (theme) => ({ @@ -100,7 +96,7 @@ const useStyles = makeStyles( genreList: { marginTop: theme.spacing(0.5), }, - links: { + externalLinks: { marginTop: theme.spacing(1.5), }, }), @@ -182,58 +178,6 @@ const Details = (props) => { return <>{intersperse(details, ' ยท ')} } -const Links = (props) => { - const classes = useStyles() - const translate = useTranslate() - const record = useRecordContext(props) - let links = [] - const addLink = (obj) => { - const id = links.length - links.push({obj}) - } - - addLink( - - - - - - - - ) - - record.mbzAlbumId && - addLink( - - - - - - - - ) - - return
{intersperse(links, ' ')}
-} - const AlbumDetails = (props) => { const record = useRecordContext(props) const isDesktop = useMediaQuery((theme) => theme.breakpoints.up('lg')) @@ -302,7 +246,7 @@ const AlbumDetails = (props) => { )} {isDesktop && ( - + )} {isDesktop && record['comment'] && } diff --git a/ui/src/album/AlbumExternalLinks.js b/ui/src/album/AlbumExternalLinks.js new file mode 100644 index 00000000..1d964c9a --- /dev/null +++ b/ui/src/album/AlbumExternalLinks.js @@ -0,0 +1,49 @@ +import React from 'react' +import { useRecordContext, useTranslate } from 'react-admin' +import { IconButton, Tooltip, Link } from '@material-ui/core' +import { ImLastfm2 } from 'react-icons/im' +import MusicBrainz from '../icons/MusicBrainz' +import { intersperse } from '../utils' + +const AlbumExternalLinks = (props) => { + const { className } = props + const translate = useTranslate() + const record = useRecordContext(props) + let links = [] + + const addLink = (url, title, icon) => { + const translatedTitle = translate(title) + const link = ( + + + + {icon} + + + + ) + const id = links.length + links.push({link}) + } + + addLink( + `https://last.fm/music/${ + encodeURIComponent(record.albumArtist) + + '/' + + encodeURIComponent(record.name) + }`, + 'message.openIn.lastfm', + + ) + + record.mbzAlbumId && + addLink( + `https://musicbrainz.org/release/${record.mbzAlbumId}`, + 'message.openIn.musicbrainz', + + ) + + return
{intersperse(links, ' ')}
+} + +export default AlbumExternalLinks