import _ from 'lodash'; import classnames from 'classnames'; import React from 'react'; import EventTypes from '../../constants/EventTypes'; import Modal from './Modal'; import TextboxRepeater from '../forms/TextboxRepeater'; import TorrentActions from '../../actions/TorrentActions'; import UIActions from '../../actions/UIActions'; import UIStore from '../../stores/UIStore'; const METHODS_TO_BIND = [ 'getContent', 'handleDestinationChange', 'handleUrlAdd', 'handleUrlChange', 'handleUrlRemove', 'handleAddTorrents', 'onLatestTorrentLocationChange' ]; export default class AddTorrents extends React.Component { constructor() { super(); this.state = { destination: null, isExpanded: false, urlTextboxes: [{value: null}] }; METHODS_TO_BIND.forEach((method) => { this[method] = this[method].bind(this); }); } componentWillMount() { this.setState({destination: UIStore.getLatestTorrentLocation()}); } componentDidMount() { UIStore.listen(EventTypes.UI_LATEST_TORRENT_LOCATION_CHANGE, this.onLatestTorrentLocationChange); } componentWillUnmount() { UIStore.unlisten(EventTypes.UI_LATEST_TORRENT_LOCATION_CHANGE, this.onLatestTorrentLocationChange); UIStore.fetchLatestTorrentLocation(); } dismissModal() { UIActions.dismissModal(); } onLatestTorrentLocationChange() { this.setState({destination: UIStore.getLatestTorrentLocation()}); } getActions() { return [ { clickHandler: null, content: 'Cancel', triggerDismiss: true, type: 'secondary' }, { clickHandler: this.handleAddTorrents, content: 'Add Torrent', triggerDismiss: true, type: 'primary' } ]; } getContent() { return (