diff --git a/client/source/scripts/components/forms/Checkbox.js b/client/source/scripts/components/forms/Checkbox.js index 632ff055..e5a738cb 100644 --- a/client/source/scripts/components/forms/Checkbox.js +++ b/client/source/scripts/components/forms/Checkbox.js @@ -5,7 +5,7 @@ import Checkmark from '../icons/Checkmark'; const METHODS_TO_BIND = ['handleCheckboxChange']; -export default class SearchBox extends React.Component { +export default class Checkbox extends React.Component { constructor() { super(); @@ -17,7 +17,8 @@ export default class SearchBox extends React.Component { } componentDidMount() { - if (this.state.checked !== this.props.checked) { + if (this.props.checked != null + && this.state.checked !== this.props.checked) { this.setState({checked: this.props.checked}); } } @@ -52,3 +53,7 @@ export default class SearchBox extends React.Component { ); } } + +Checkbox.defaultProps = { + checked: false +}; diff --git a/client/source/scripts/components/modals/AddTorrentsActions.js b/client/source/scripts/components/modals/AddTorrentsActions.js index c6b769ab..0637a6ca 100644 --- a/client/source/scripts/components/modals/AddTorrentsActions.js +++ b/client/source/scripts/components/modals/AddTorrentsActions.js @@ -6,7 +6,7 @@ import SettingsStore from '../../stores/SettingsStore'; const METHODS_TO_BIND = ['handleStartTorrentsToggle']; -export default class AddTorrents extends React.Component { +export default class AddTorrentsActions extends React.Component { constructor() { super(); diff --git a/client/source/scripts/components/modals/AddTorrentsByFile.js b/client/source/scripts/components/modals/AddTorrentsByFile.js index eb38c259..788c4908 100644 --- a/client/source/scripts/components/modals/AddTorrentsByFile.js +++ b/client/source/scripts/components/modals/AddTorrentsByFile.js @@ -19,7 +19,7 @@ const METHODS_TO_BIND = [ 'handleStartTorrentsToggle' ]; -export default class AddTorrents extends React.Component { +export default class AddTorrentsByFile extends React.Component { constructor() { super(); diff --git a/client/source/scripts/components/modals/AddTorrentsByURL.js b/client/source/scripts/components/modals/AddTorrentsByURL.js index 4d0f689c..cc17095e 100644 --- a/client/source/scripts/components/modals/AddTorrentsByURL.js +++ b/client/source/scripts/components/modals/AddTorrentsByURL.js @@ -15,7 +15,7 @@ const METHODS_TO_BIND = [ 'handleUrlRemove' ]; -export default class AddTorrents extends React.Component { +export default class AddTorrentsByURL extends React.Component { constructor() { super(); @@ -23,7 +23,7 @@ export default class AddTorrents extends React.Component { addTorrentsError: null, destination: null, isAddingTorrents: false, - urlTextboxes: [{value: null}], + urlTextboxes: [{value: ''}], startTorrents: true }; @@ -59,7 +59,7 @@ export default class AddTorrents extends React.Component { handleUrlAdd(index) { let urlTextboxes = Object.assign([], this.state.urlTextboxes); - urlTextboxes.splice(index + 1, 0, {value: null}); + urlTextboxes.splice(index + 1, 0, {value: ''}); this.setState({urlTextboxes}); } diff --git a/client/source/scripts/components/modals/AddTorrentsDestination.js b/client/source/scripts/components/modals/AddTorrentsDestination.js index 4974ac95..cac8c91d 100644 --- a/client/source/scripts/components/modals/AddTorrentsDestination.js +++ b/client/source/scripts/components/modals/AddTorrentsDestination.js @@ -6,7 +6,7 @@ import SettingsStore from '../../stores/SettingsStore'; const METHODS_TO_BIND = ['handleDestinationChange']; -export default class AddTorrents extends React.Component { +export default class AddTorrentsDestination extends React.Component { constructor() { super(); diff --git a/client/source/scripts/components/modals/ConfirmModal.js b/client/source/scripts/components/modals/ConfirmModal.js index 3d9998df..5ec69be2 100644 --- a/client/source/scripts/components/modals/ConfirmModal.js +++ b/client/source/scripts/components/modals/ConfirmModal.js @@ -2,7 +2,7 @@ import React from 'react'; import Modal from './Modal'; -export default class AddTorrents extends React.Component { +export default class ConfirmModal extends React.Component { constructor() { super(); } diff --git a/client/source/scripts/components/modals/Modal.js b/client/source/scripts/components/modals/Modal.js index 38f24b89..a52b00cd 100644 --- a/client/source/scripts/components/modals/Modal.js +++ b/client/source/scripts/components/modals/Modal.js @@ -1,5 +1,6 @@ import _ from 'lodash'; import classnames from 'classnames'; +import createFragment from 'react-addons-create-fragment'; import React from 'react'; import CustomScrollbars from '../ui/CustomScrollbars'; @@ -46,8 +47,8 @@ export default class Modal extends React.Component { 'modal--tabs-in-header': !this.props.tabsInBody, 'modal--tabs-in-body': this.props.tabsInBody }, this.props.classNames); - let modalBody = [this.props.content]; - let modalHeader = [this.props.heading]; + let modalBody = [createFragment({'modal-body': this.props.content})]; + let modalHeader = [createFragment({'modal-header': this.props.heading})]; let headerClasses = classnames('modal__header', { 'has-tabs': this.props.tabs }); diff --git a/client/source/scripts/components/modals/MoveTorrents.js b/client/source/scripts/components/modals/MoveTorrents.js index e6b66023..cc8c7459 100644 --- a/client/source/scripts/components/modals/MoveTorrents.js +++ b/client/source/scripts/components/modals/MoveTorrents.js @@ -20,7 +20,7 @@ const METHODS_TO_BIND = [ 'onMoveError' ]; -export default class AddTorrents extends React.Component { +export default class MoveTorrents extends React.Component { constructor() { super(); @@ -121,13 +121,12 @@ export default class AddTorrents extends React.Component { getContent() { return ( -
+
Move data
-
); } @@ -144,9 +143,10 @@ export default class AddTorrents extends React.Component { render() { return ( - + heading="Set Download Location" /> ); } } diff --git a/client/source/scripts/components/modals/SettingsModal.js b/client/source/scripts/components/modals/SettingsModal.js index daf533d6..a492a942 100644 --- a/client/source/scripts/components/modals/SettingsModal.js +++ b/client/source/scripts/components/modals/SettingsModal.js @@ -12,7 +12,7 @@ const METHODS_TO_BIND = [ 'handleSettingsFetchRequestSuccess' ]; -export default class AddTorrents extends React.Component { +export default class SettingsModal extends React.Component { constructor() { super(); diff --git a/client/source/scripts/components/modals/SettingsSpeedLimit.js b/client/source/scripts/components/modals/SettingsSpeedLimit.js index f5a7c4ee..3ed37198 100644 --- a/client/source/scripts/components/modals/SettingsSpeedLimit.js +++ b/client/source/scripts/components/modals/SettingsSpeedLimit.js @@ -2,7 +2,7 @@ import React from 'react'; const METHODS_TO_BIND = ['handleDownloadTextChange', 'handleUploadTextChange']; -export default class AddTorrents extends React.Component { +export default class SettingsSpeedLimit extends React.Component { constructor() { super(); @@ -97,8 +97,8 @@ export default class AddTorrents extends React.Component { } render() { - let downloadValue = this.getDownloadValue(); - let uploadValue = this.getUploadValue(); + let downloadValue = this.getDownloadValue() || 0; + let uploadValue = this.getUploadValue() || 0; return (
diff --git a/package.json b/package.json index 7a7c97be..e0c0883c 100644 --- a/package.json +++ b/package.json @@ -38,11 +38,12 @@ "passport": "^0.3.2", "passport-http": "^0.3.0", "q": "^1.2.0", - "react": "^0.14.7", - "react-addons-css-transition-group": "^0.14.7", - "react-custom-scrollbars": "^3.0.0", - "react-dom": "^0.14.7", - "react-dropzone": "^3.3.2", + "react": "^15.0.2", + "react-addons-create-fragment": "^15.0.2", + "react-addons-css-transition-group": "^15.0.2", + "react-custom-scrollbars": "^4.0.0-beta.1", + "react-dom": "^15.0.2", + "react-dropzone": "^3.4.0", "sax": "^0.6.1", "serve-favicon": "~2.2.0", "xmlbuilder": "^2.6.2",