mirror of
https://github.com/navidrome/navidrome.git
synced 2025-04-16 12:10:36 +03:00
refactor: simplify PlayButton usage
This commit is contained in:
parent
a50735a94c
commit
8f0c07d29f
@ -1,4 +1,4 @@
|
||||
import React, { Fragment } from 'react'
|
||||
import React from 'react'
|
||||
import { Loading, useGetOne } from 'react-admin'
|
||||
import { Card, CardContent, CardMedia, Typography } from '@material-ui/core'
|
||||
import { subsonicUrl } from '../subsonic'
|
||||
|
@ -32,8 +32,8 @@ const AlbumSongList = (props) => {
|
||||
total={total}
|
||||
primaryText={(r) => (
|
||||
<>
|
||||
<PlayButton record={r} />
|
||||
<PlayButton record={r} action={addTrack} icon={<AddIcon />} />
|
||||
<PlayButton action={setTrack(r)} />
|
||||
<PlayButton action={addTrack(r)} icon={<AddIcon />} />
|
||||
{trackName(r)}
|
||||
</>
|
||||
)}
|
||||
|
@ -3,23 +3,17 @@ import PropTypes from 'prop-types'
|
||||
import PlayArrowIcon from '@material-ui/icons/PlayArrow'
|
||||
import { IconButton } from '@material-ui/core'
|
||||
import { useDispatch } from 'react-redux'
|
||||
import { setTrack } from '../player'
|
||||
|
||||
const defaultIcon = <PlayArrowIcon fontSize="small" />
|
||||
|
||||
const PlayButton = ({
|
||||
record,
|
||||
icon = defaultIcon,
|
||||
action = setTrack,
|
||||
...rest
|
||||
}) => {
|
||||
const PlayButton = ({ icon = defaultIcon, action, ...rest }) => {
|
||||
const dispatch = useDispatch()
|
||||
|
||||
return (
|
||||
<IconButton
|
||||
onClick={(e) => {
|
||||
e.stopPropagation()
|
||||
dispatch(action(record))
|
||||
dispatch(action)
|
||||
}}
|
||||
{...rest}
|
||||
size={'small'}
|
||||
@ -30,8 +24,7 @@ const PlayButton = ({
|
||||
}
|
||||
|
||||
PlayButton.propTypes = {
|
||||
record: PropTypes.any,
|
||||
icon: PropTypes.element,
|
||||
action: PropTypes.func
|
||||
action: PropTypes.object
|
||||
}
|
||||
export default PlayButton
|
||||
|
@ -66,21 +66,15 @@ const SongList = (props) => {
|
||||
>
|
||||
{isXsmall ? (
|
||||
<SimpleList
|
||||
primaryText={(record) => (
|
||||
primaryText={(r) => (
|
||||
<>
|
||||
<PlayButton record={record} />
|
||||
<PlayButton
|
||||
record={record}
|
||||
action={addTrack}
|
||||
icon={<AddIcon />}
|
||||
/>
|
||||
{record.title}
|
||||
<PlayButton action={setTrack(r)} />
|
||||
<PlayButton action={addTrack(r)} icon={<AddIcon />} />
|
||||
{r.title}
|
||||
</>
|
||||
)}
|
||||
secondaryText={(record) => record.artist}
|
||||
tertiaryText={(record) => (
|
||||
<DurationField record={record} source={'duration'} />
|
||||
)}
|
||||
secondaryText={(r) => r.artist}
|
||||
tertiaryText={(r) => <DurationField record={r} source={'duration'} />}
|
||||
linkType={(id, basePath, record) => dispatch(setTrack(record))}
|
||||
/>
|
||||
) : (
|
||||
|
Loading…
x
Reference in New Issue
Block a user