import React, { cloneElement, isValidElement, useState } from 'react' import { useHistory } from 'react-router-dom' import { Datagrid, DatagridBody, DatagridRow, Filter, NumberField, SearchInput, TextField, } from 'react-admin' import { useMediaQuery, withWidth } from '@material-ui/core' import StarIcon from '@material-ui/icons/Star' import StarBorderIcon from '@material-ui/icons/StarBorder' import AddToPlaylistDialog from '../dialogs/AddToPlaylistDialog' import { ArtistContextMenu, List, QuickFilter, SimpleList, useGetHandleArtistClick, } from '../common' import { makeStyles } from '@material-ui/core/styles' const useStyles = makeStyles({ columnIcon: { marginLeft: '3px', marginTop: '-2px', verticalAlign: 'text-top', }, }) const ArtistFilter = (props) => ( } defaultValue={true} /> ) const ArtistDatagridRow = ({ children, ...rest }) => { const [visible, setVisible] = useState(false) const childCount = React.Children.count(children) return ( setVisible(true)} onMouseLeave={() => setVisible(false)} {...rest} > {React.Children.map( children, (child, index) => child && isValidElement(child) && (index < childCount - 1 ? child : cloneElement(child, { visible, })) )} ) } const ArtistDatagridBody = (props) => ( } /> ) const ArtistDatagrid = (props) => ( } /> ) const ArtistListView = ({ hasShow, hasEdit, hasList, width, ...rest }) => { const classes = useStyles() const handleArtistLink = useGetHandleArtistClick(width) const history = useHistory() const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs')) return isXsmall ? ( r.name} linkType={(id) => { history.push(handleArtistLink(id)) }} rightIcon={(r) => } {...rest} /> ) : ( } /> ) } const ArtistList = (props) => { return ( <> } > ) } export default withWidth()(ArtistList)