feat: hide missing artists from regular users and Subsonic API (#4092)
* Handle missing artists for non-admin users * feat(artist): enhance ArtistList with missing row styling and class management Signed-off-by: Deluan <deluan@navidrome.org> --------- Signed-off-by: Deluan <deluan@navidrome.org>
This commit is contained in:
@@ -17,6 +17,7 @@ import FavoriteIcon from '@material-ui/icons/Favorite'
|
||||
import FavoriteBorderIcon from '@material-ui/icons/FavoriteBorder'
|
||||
import { makeStyles } from '@material-ui/core/styles'
|
||||
import { useDrag } from 'react-dnd'
|
||||
import clsx from 'clsx'
|
||||
import {
|
||||
ArtistContextMenu,
|
||||
List,
|
||||
@@ -49,6 +50,9 @@ const useStyles = makeStyles({
|
||||
},
|
||||
},
|
||||
},
|
||||
missingRow: {
|
||||
opacity: 0.3,
|
||||
},
|
||||
contextMenu: {
|
||||
visibility: 'hidden',
|
||||
},
|
||||
@@ -95,7 +99,15 @@ const ArtistDatagridRow = (props) => {
|
||||
}),
|
||||
[record],
|
||||
)
|
||||
return <DatagridRow ref={dragArtistRef} {...props} />
|
||||
const classes = useStyles()
|
||||
const computedClasses = clsx(
|
||||
props.className,
|
||||
classes.row,
|
||||
record?.missing && classes.missingRow,
|
||||
)
|
||||
return (
|
||||
<DatagridRow ref={dragArtistRef} {...props} className={computedClasses} />
|
||||
)
|
||||
}
|
||||
|
||||
const ArtistDatagridBody = (props) => (
|
||||
|
||||
@@ -23,7 +23,8 @@ const mapResource = (resource, params) => {
|
||||
return [`playlist/${plsId}/tracks`, params]
|
||||
}
|
||||
case 'album':
|
||||
case 'song': {
|
||||
case 'song':
|
||||
case 'artist': {
|
||||
if (params.filter && !isAdmin()) {
|
||||
params.filter.missing = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user