import React, { useMemo } from 'react' import { useHistory } from 'react-router-dom' import { AutocompleteInput, Datagrid, Filter, NumberField, ReferenceInput, SearchInput, TextField, useTranslate, } from 'react-admin' import { useMediaQuery, withWidth } from '@material-ui/core' import FavoriteIcon from '@material-ui/icons/Favorite' import FavoriteBorderIcon from '@material-ui/icons/FavoriteBorder' import { makeStyles } from '@material-ui/core/styles' import { AddToPlaylistDialog } from '../dialogs' import { ArtistContextMenu, List, QuickFilter, useGetHandleArtistClick, ArtistSimpleList, RatingField, useSelectedFields, useResourceRefresh, } from '../common' import config from '../config' import ArtistListActions from './ArtistListActions' const useStyles = makeStyles({ contextHeader: { marginLeft: '3px', marginTop: '-2px', verticalAlign: 'text-top', }, row: { '&:hover': { '& $contextMenu': { visibility: 'visible', }, '& $ratingField': { visibility: 'visible', }, }, }, contextMenu: { visibility: 'hidden', }, ratingField: { visibility: 'hidden', }, }) const ArtistFilter = (props) => { const translate = useTranslate() return ( ({ name: [searchText] })} > {config.enableFavourites && ( } defaultValue={true} /> )} ) } 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')) useResourceRefresh('artist') const toggleableFields = useMemo(() => { return { albumCount: , songCount: , playCount: , rating: config.enableStarRating && ( ), } }, [classes.ratingField]) const columns = useSelectedFields({ resource: 'artist', columns: toggleableFields, }) return isXsmall ? ( history.push(handleArtistLink(id))} {...rest} /> ) : ( {columns} ) } /> ) } const ArtistList = (props) => { return ( <> } actions={} > ) } export default withWidth()(ArtistList)