import React, { useMemo } from 'react' import Paper from '@material-ui/core/Paper' import Table from '@material-ui/core/Table' import TableBody from '@material-ui/core/TableBody' import inflection from 'inflection' import TableCell from '@material-ui/core/TableCell' import TableContainer from '@material-ui/core/TableContainer' import TableRow from '@material-ui/core/TableRow' import { BooleanField, Datagrid, DateField, NumberField, Show, TextField, useTranslate, } from 'react-admin' import { useMediaQuery } from '@material-ui/core' import FavoriteBorderIcon from '@material-ui/icons/FavoriteBorder' import { makeStyles } from '@material-ui/core/styles' import { ArtistLinkField, DurationField, RangeField, SimpleList, MultiLineTextField, AlbumContextMenu, RatingField, useSelectedFields, } from '../common' import config from '../config' const useStyles = makeStyles({ columnIcon: { marginLeft: '3px', marginTop: '-2px', verticalAlign: 'text-top', }, row: { '&:hover': { '& $contextMenu': { visibility: 'visible', }, '& $ratingField': { visibility: 'visible', }, }, }, tableCell: { width: '17.5%', }, contextMenu: { visibility: 'hidden', }, ratingField: { visibility: 'hidden', }, }) const AlbumDetails = (props) => { const classes = useStyles() const translate = useTranslate() const { record } = props const data = { albumArtist: , genre: , compilation: , updatedAt: , comment: , } if (!record.comment) { delete data.comment } return ( {Object.keys(data).map((key) => { return ( {translate(`resources.album.fields.${key}`, { _: inflection.humanize(inflection.underscore(key)), })} : {data[key]} ) })}
) } const AlbumTableView = ({ hasShow, hasEdit, hasList, syncWithLocation, ...rest }) => { const classes = useStyles() const isDesktop = useMediaQuery((theme) => theme.breakpoints.up('md')) const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs')) const toggleableFields = useMemo(() => { return { artist: , songCount: isDesktop && ( ), playCount: isDesktop && ( ), year: ( ), duration: isDesktop && , rating: config.enableStarRating && ( ), } }, [classes.ratingField, isDesktop]) const columns = useSelectedFields({ resource: 'album', columns: toggleableFields, }) return isXsmall ? ( r.name} secondaryText={(r) => ( <> {r.albumArtist} {config.enableStarRating && ( <>
)} )} tertiaryText={(r) => ( <>       )} linkType={'show'} rightIcon={(r) => } {...rest} /> ) : ( } rowClick={'show'} classes={{ row: classes.row }} {...rest} > {columns} ) } /> ) } export default AlbumTableView