Use a ☆ instead of the word "starred"

This commit is contained in:
Deluan 2020-05-24 12:12:12 -04:00
parent ac8f92d7ac
commit cac1a20ec8
4 changed files with 40 additions and 9 deletions

View File

@ -6,12 +6,12 @@ import {
ListToolbar, ListToolbar,
TextField, TextField,
useListController, useListController,
useTranslate,
} 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 } from '@material-ui/core'
import { makeStyles } from '@material-ui/core/styles' import { makeStyles } from '@material-ui/core/styles'
import StarBorderIcon from '@material-ui/icons/StarBorder'
import { playTracks } from '../audioplayer' import { playTracks } from '../audioplayer'
import { import {
DurationField, DurationField,
@ -46,6 +46,10 @@ const useStyles = makeStyles(
flexWrap: 'wrap', flexWrap: 'wrap',
}, },
noResults: { padding: 20 }, noResults: { padding: 20 },
columnIcon: {
marginLeft: '3px',
verticalAlign: 'text-top',
},
}), }),
{ name: 'RaList' } { name: 'RaList' }
) )
@ -66,7 +70,6 @@ const trackName = (r) => {
const AlbumSongs = (props) => { const AlbumSongs = (props) => {
const classes = useStyles(props) const classes = useStyles(props)
const translate = useTranslate()
const classesToolbar = useStylesListToolbar(props) const classesToolbar = useStylesListToolbar(props)
const dispatch = useDispatch() const dispatch = useDispatch()
const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs')) const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs'))
@ -147,7 +150,14 @@ const AlbumSongs = (props) => {
{isDesktop && <TextField source="artist" sortable={false} />} {isDesktop && <TextField source="artist" sortable={false} />}
<DurationField source="duration" sortable={false} /> <DurationField source="duration" sortable={false} />
<SongContextMenu <SongContextMenu
label={translate('resources.song.fields.starred')} source={'starred'}
sortable={false}
label={
<StarBorderIcon
fontSize={'small'}
className={classes.columnIcon}
/>
}
/> />
</SongDatagrid> </SongDatagrid>
)} )}

View File

@ -96,7 +96,11 @@ const SongContextMenu = ({ record, showStar, onAddToPlaylist, visible }) => {
disabled={updating} disabled={updating}
className={classes.star} className={classes.star}
> >
{record.starred ? <StarIcon /> : <StarBorderIcon />} {record.starred ? (
<StarIcon fontSize={'small'} />
) : (
<StarBorderIcon fontSize={'small'} />
)}
</IconButton> </IconButton>
)} )}
<IconButton <IconButton

View File

@ -58,7 +58,6 @@ export const SongDatagridRow = ({
? child ? child
: cloneElement(child, { : cloneElement(child, {
visible: contextVisible || visible, visible: contextVisible || visible,
...child.props,
...rest, ...rest,
})) }))
)} )}

View File

@ -5,9 +5,11 @@ import {
NumberField, NumberField,
SearchInput, SearchInput,
TextField, TextField,
useTranslate,
} from 'react-admin' } from 'react-admin'
import { useMediaQuery } from '@material-ui/core' import { useMediaQuery } from '@material-ui/core'
import { makeStyles } from '@material-ui/core/styles'
import StarBorderIcon from '@material-ui/icons/StarBorder'
import StarIcon from '@material-ui/icons/Star'
import { import {
DurationField, DurationField,
List, List,
@ -22,16 +24,27 @@ import { setTrack } from '../audioplayer'
import { SongBulkActions } from './SongBulkActions' import { SongBulkActions } from './SongBulkActions'
import { AlbumLinkField } from './AlbumLinkField' import { AlbumLinkField } from './AlbumLinkField'
const useStyles = makeStyles({
columnIcon: {
marginLeft: '3px',
verticalAlign: 'text-top',
},
})
const SongFilter = (props) => ( const SongFilter = (props) => (
<Filter {...props}> <Filter {...props}>
<SearchInput source="title" alwaysOn /> <SearchInput source="title" alwaysOn />
<QuickFilter source="starred" defaultValue={true} /> <QuickFilter
source="starred"
label={<StarIcon fontSize={'small'} />}
defaultValue={true}
/>
</Filter> </Filter>
) )
const SongList = (props) => { const SongList = (props) => {
const classes = useStyles()
const dispatch = useDispatch() const dispatch = useDispatch()
const translate = useTranslate()
const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs')) const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs'))
const isDesktop = useMediaQuery((theme) => theme.breakpoints.up('md')) const isDesktop = useMediaQuery((theme) => theme.breakpoints.up('md'))
return ( return (
@ -73,7 +86,12 @@ const SongList = (props) => {
{isDesktop ? ( {isDesktop ? (
<SongContextMenu <SongContextMenu
source={'starred'} source={'starred'}
label={translate('resources.song.fields.starred')} label={
<StarBorderIcon
fontSize={'small'}
className={classes.columnIcon}
/>
}
sortBy={'starred DESC, starredAt ASC'} sortBy={'starred DESC, starredAt ASC'}
/> />
) : ( ) : (