Lidarr/frontend/src/AlbumStudio/AlbumStudioRow.js

96 lines
2.5 KiB
JavaScript
Raw Normal View History

2017-09-04 02:20:56 +00:00
import PropTypes from 'prop-types';
import React, { Component } from 'react';
2020-09-07 01:33:10 +00:00
import ArtistNameLink from 'Artist/ArtistNameLink';
import ArtistStatusCell from 'Artist/Index/Table/ArtistStatusCell';
2020-08-26 21:38:48 +00:00
import VirtualTableRowCell from 'Components/Table/Cells/VirtualTableRowCell';
import VirtualTableSelectCell from 'Components/Table/Cells/VirtualTableSelectCell';
import AlbumStudioAlbum from './AlbumStudioAlbum';
import styles from './AlbumStudioRow.css';
2017-09-04 02:20:56 +00:00
class AlbumStudioRow extends Component {
2017-09-04 02:20:56 +00:00
//
// Render
render() {
const {
artistId,
status,
foreignArtistId,
artistName,
2020-08-26 21:38:48 +00:00
artistType,
2017-09-04 02:20:56 +00:00
monitored,
albums,
2017-09-04 02:20:56 +00:00
isSaving,
isSelected,
onSelectedChange,
onArtistMonitoredPress,
onAlbumMonitoredPress
2017-09-04 02:20:56 +00:00
} = this.props;
return (
2020-08-26 21:38:48 +00:00
<>
<VirtualTableSelectCell
className={styles.selectCell}
2017-09-04 02:20:56 +00:00
id={artistId}
isSelected={isSelected}
onSelectedChange={onSelectedChange}
2020-08-26 21:38:48 +00:00
isDisabled={false}
2017-09-04 02:20:56 +00:00
/>
2020-08-26 21:38:48 +00:00
<ArtistStatusCell
className={styles.status}
artistType={artistType}
monitored={monitored}
status={status}
isSaving={isSaving}
onMonitoredPress={onArtistMonitoredPress}
component={VirtualTableRowCell}
/>
2017-09-04 02:20:56 +00:00
2020-08-26 21:38:48 +00:00
<VirtualTableRowCell className={styles.title}>
2017-09-04 02:20:56 +00:00
<ArtistNameLink
foreignArtistId={foreignArtistId}
artistName={artistName}
2017-09-04 02:20:56 +00:00
/>
2020-08-26 21:38:48 +00:00
</VirtualTableRowCell>
2017-09-04 02:20:56 +00:00
2020-08-26 21:38:48 +00:00
<VirtualTableRowCell className={styles.albums}>
2017-09-04 02:20:56 +00:00
{
albums.map((album) => {
2017-09-04 02:20:56 +00:00
return (
<AlbumStudioAlbum
key={album.id}
{...album}
onAlbumMonitoredPress={onAlbumMonitoredPress}
2017-09-04 02:20:56 +00:00
/>
);
})
}
2020-08-26 21:38:48 +00:00
</VirtualTableRowCell>
</>
2017-09-04 02:20:56 +00:00
);
}
}
AlbumStudioRow.propTypes = {
2017-09-04 02:20:56 +00:00
artistId: PropTypes.number.isRequired,
status: PropTypes.string.isRequired,
foreignArtistId: PropTypes.string.isRequired,
artistName: PropTypes.string.isRequired,
2020-08-26 21:38:48 +00:00
artistType: PropTypes.string,
2017-09-04 02:20:56 +00:00
monitored: PropTypes.bool.isRequired,
albums: PropTypes.arrayOf(PropTypes.object).isRequired,
2017-09-04 02:20:56 +00:00
isSaving: PropTypes.bool.isRequired,
isSelected: PropTypes.bool,
onSelectedChange: PropTypes.func.isRequired,
onArtistMonitoredPress: PropTypes.func.isRequired,
onAlbumMonitoredPress: PropTypes.func.isRequired
2017-09-04 02:20:56 +00:00
};
AlbumStudioRow.defaultProps = {
2017-09-04 02:20:56 +00:00
isSaving: false
};
export default AlbumStudioRow;