import PropTypes from 'prop-types'; import React, { Component } from 'react'; import Alert from 'Components/Alert'; import FieldSet from 'Components/FieldSet'; import FileBrowserModal from 'Components/FileBrowser/FileBrowserModal'; import Icon from 'Components/Icon'; import Button from 'Components/Link/Button'; import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import PageContent from 'Components/Page/PageContent'; import PageContentBody from 'Components/Page/PageContentBody'; import Table from 'Components/Table/Table'; import TableBody from 'Components/Table/TableBody'; import { icons, kinds, sizes } from 'Helpers/Props'; import translate from 'Utilities/String/translate'; import ImportMovieRootFolderRowConnector from './ImportMovieRootFolderRowConnector'; import styles from './ImportMovieSelectFolder.css'; const rootFolderColumns = [ { name: 'path', label: translate('Path'), isVisible: true }, { name: 'freeSpace', label: translate('FreeSpace'), isVisible: true }, { name: 'unmappedFolders', label: translate('UnmappedFolders'), isVisible: true }, { name: 'actions', isVisible: true } ]; class ImportMovieSelectFolder extends Component { // // Lifecycle constructor(props, context) { super(props, context); this.state = { isAddNewRootFolderModalOpen: false }; } // // Lifecycle onAddNewRootFolderPress = () => { this.setState({ isAddNewRootFolderModalOpen: true }); } onNewRootFolderSelect = ({ value }) => { this.props.onNewRootFolderSelect(value); } onAddRootFolderModalClose = () => { this.setState({ isAddNewRootFolderModalOpen: false }); } // // Render render() { const { isWindows, isFetching, isPopulated, isSaving, error, saveError, items } = this.props; const hasRootFolders = items.length > 0; return ( { isFetching && !isPopulated ? : null } { !isFetching && error ?
{translate('UnableToLoadRootFolders')}
: null } { !error && isPopulated &&
{translate('ImportHeader')}
{translate('ImportTipsMessage')}
  • movie.2008.bluray.mkv']) }} />
  • ${isWindows ? 'C:\\movies' : '/movies'}`, `${isWindows ? 'C:\\movies\\the matrix' : '/movies/the matrix'}`]) }} />
  • {translate('ImportNotForDownloads')}
{ hasRootFolders ?
{ items.map((rootFolder) => { return ( ); }) }
: null } { !isSaving && saveError ? {translate('UnableToAddRootFolder')}
    { saveError.responseJSON.map((e, index) => { return (
  • {e.errorMessage}
  • ); }) }
: null }
}
); } } ImportMovieSelectFolder.propTypes = { isWindows: PropTypes.bool.isRequired, isFetching: PropTypes.bool.isRequired, isPopulated: PropTypes.bool.isRequired, isSaving: PropTypes.bool.isRequired, error: PropTypes.object, saveError: PropTypes.object, items: PropTypes.arrayOf(PropTypes.object).isRequired, onNewRootFolderSelect: PropTypes.func.isRequired, onDeleteRootFolderPress: PropTypes.func.isRequired }; export default ImportMovieSelectFolder;