import PropTypes from 'prop-types'; import React, { Component } from 'react'; import { Tab, Tabs, TabList, TabPanel } from 'react-tabs'; import albumEntities from 'Album/albumEntities'; import Button from 'Components/Link/Button'; import ModalContent from 'Components/Modal/ModalContent'; import ModalHeader from 'Components/Modal/ModalHeader'; import ModalBody from 'Components/Modal/ModalBody'; import ModalFooter from 'Components/Modal/ModalFooter'; import MonitorToggleButton from 'Components/MonitorToggleButton'; import AlbumSummaryConnector from './Summary/AlbumSummaryConnector'; import AlbumHistoryConnector from './History/AlbumHistoryConnector'; import AlbumSearchConnector from './Search/AlbumSearchConnector'; import styles from './AlbumDetailsModalContent.css'; const tabs = [ 'details', 'history', 'search' ]; class AlbumDetailsModalContent extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { selectedTab: props.selectedTab }; } // // Listeners onTabSelect = (index, lastIndex) => { this.setState({ selectedTab: tabs[index] }); } // // Render render() { const { albumId, albumEntity, artistId, artistName, nameSlug, albumLabel, artistMonitored, albumTitle, releaseDate, monitored, isSaving, showOpenArtistButton, startInteractiveSearch, onMonitorAlbumPress, onModalClose } = this.props; const artistLink = `/artist/${nameSlug}`; return ( {artistName} - {albumTitle} Details History Search { showOpenArtistButton && } ); } } AlbumDetailsModalContent.propTypes = { albumId: PropTypes.number.isRequired, albumEntity: PropTypes.string.isRequired, artistId: PropTypes.number.isRequired, artistName: PropTypes.string.isRequired, nameSlug: PropTypes.string.isRequired, artistMonitored: PropTypes.bool.isRequired, releaseDate: PropTypes.string.isRequired, albumLabel: PropTypes.arrayOf(PropTypes.string).isRequired, albumTitle: PropTypes.string.isRequired, monitored: PropTypes.bool.isRequired, isSaving: PropTypes.bool, showOpenArtistButton: PropTypes.bool, selectedTab: PropTypes.string.isRequired, startInteractiveSearch: PropTypes.bool.isRequired, onMonitorAlbumPress: PropTypes.func.isRequired, onModalClose: PropTypes.func.isRequired }; AlbumDetailsModalContent.defaultProps = { selectedTab: 'details', albumLabel: ['Unknown'], albumEntity: albumEntities.ALBUMS, startInteractiveSearch: false }; export default AlbumDetailsModalContent;