import classNames from 'classnames'; import React, { useCallback } from 'react'; import { useDispatch } from 'react-redux'; import { Statistics } from 'Album/Album'; import MonitorToggleButton from 'Components/MonitorToggleButton'; import { toggleAlbumsMonitored } from 'Store/Actions/albumActions'; import translate from 'Utilities/String/translate'; import styles from './AlbumStudioAlbum.css'; interface AlbumStudioAlbumProps { artistId: number; albumId: number; title: string; disambiguation?: string; albumType: string; monitored: boolean; statistics: Statistics; isSaving: boolean; } function AlbumStudioAlbum(props: AlbumStudioAlbumProps) { const { albumId, title, disambiguation, albumType, monitored, statistics = { trackFileCount: 0, totalTrackCount: 0, percentOfTracks: 0, }, isSaving = false, } = props; const { trackFileCount = 0, totalTrackCount = 0, percentOfTracks = 0, } = statistics; const dispatch = useDispatch(); const onAlbumMonitoredPress = useCallback(() => { dispatch( toggleAlbumsMonitored({ albumIds: [albumId], monitored: !monitored, }) ); }, [albumId, monitored, dispatch]); return (
{disambiguation ? `${title} (${disambiguation})` : `${title}`}
{albumType}
{totalTrackCount === 0 ? '0/0' : `${trackFileCount}/${totalTrackCount}`}
); } export default AlbumStudioAlbum;