Fix context menu on mobile, removed console warnings

This commit is contained in:
Deluan
2020-05-29 22:50:33 -04:00
parent a7640c9df4
commit fbedbb7893
4 changed files with 14 additions and 10 deletions
+1 -1
View File
@@ -117,7 +117,7 @@ const AlbumSongs = (props) => {
/> />
) : ( ) : (
<SongDatagrid <SongDatagrid
expand={!isXsmall && <SongDetails />} expand={isXsmall ? null : <SongDetails />}
rowClick={(id) => dispatch(playTracks(data, ids, id))} rowClick={(id) => dispatch(playTracks(data, ids, id))}
{...controllerProps} {...controllerProps}
hasBulkActions={hasBulkActions} hasBulkActions={hasBulkActions}
+1 -1
View File
@@ -107,7 +107,7 @@ const AlbumContextMenu = ({ record, discNumber, color, visible }) => {
onClick={handleClick} onClick={handleClick}
size={'small'} size={'small'}
> >
<MoreVertIcon /> <MoreVertIcon fontSize={'small'} />
</IconButton> </IconButton>
<Menu <Menu
id="context-menu" id="context-menu"
+1 -1
View File
@@ -120,7 +120,7 @@ const SongContextMenu = ({
className={classes.menu} className={classes.menu}
disabled={updating} disabled={updating}
> >
<MoreVertIcon /> <MoreVertIcon fontSize={'small'} />
</IconButton> </IconButton>
<Menu <Menu
id={'menu' + record.id} id={'menu' + record.id}
+11 -7
View File
@@ -24,7 +24,12 @@ const useStyles = makeStyles({
}, },
}) })
const DiscSubtitleRow = ({ record, onClickDiscSubtitle, colSpan }) => { const DiscSubtitleRow = ({
record,
onClickDiscSubtitle,
colSpan,
contextAlwaysVisible,
}) => {
const classes = useStyles() const classes = useStyles()
const [visible, setVisible] = useState(false) const [visible, setVisible] = useState(false)
const handlePlayDisc = (discNumber) => () => { const handlePlayDisc = (discNumber) => () => {
@@ -49,7 +54,7 @@ const DiscSubtitleRow = ({ record, onClickDiscSubtitle, colSpan }) => {
<AlbumContextMenu <AlbumContextMenu
record={{ id: record.albumId }} record={{ id: record.albumId }}
discNumber={record.discNumber} discNumber={record.discNumber}
visible={visible} visible={contextAlwaysVisible || visible}
/> />
</TableCell> </TableCell>
</TableRow> </TableRow>
@@ -61,19 +66,19 @@ export const SongDatagridRow = ({
children, children,
multiDisc, multiDisc,
contextAlwaysVisible, contextAlwaysVisible,
contextMenu,
onClickDiscSubtitle, onClickDiscSubtitle,
...rest ...rest
}) => { }) => {
const [visible, setVisible] = useState(false) const [visible, setVisible] = useState(false)
const childCount = React.Children.count(children) const childCount = children.filter((c) => isValidElement(c)).length
return ( return (
<> <>
{multiDisc && record.trackNumber === 1 && ( {multiDisc && record.trackNumber === 1 && (
<DiscSubtitleRow <DiscSubtitleRow
record={record} record={record}
onClickDiscSubtitle={onClickDiscSubtitle} onClickDiscSubtitle={onClickDiscSubtitle}
colSpan={childCount} contextAlwaysVisible={contextAlwaysVisible}
colSpan={childCount + (rest.expand ? 1 : 0)}
/> />
)} )}
<DatagridRow <DatagridRow
@@ -87,11 +92,10 @@ export const SongDatagridRow = ({
(child, index) => (child, index) =>
child && child &&
isValidElement(child) && isValidElement(child) &&
(index < childCount - 1 (index < childCount
? child ? child
: cloneElement(child, { : cloneElement(child, {
visible: contextAlwaysVisible || visible, visible: contextAlwaysVisible || visible,
...rest,
})) }))
)} )}
</DatagridRow> </DatagridRow>