diff --git a/src/components/connection-modal/connected-step.jsx b/src/components/connection-modal/connected-step.jsx index 03a70235e..5b3bf09c0 100644 --- a/src/components/connection-modal/connected-step.jsx +++ b/src/components/connection-modal/connected-step.jsx @@ -14,7 +14,7 @@ const ConnectedStep = props => ( onClick={props.onSearch} > diff --git a/src/components/connection-modal/connecting-step.jsx b/src/components/connection-modal/connecting-step.jsx index b2b30cffb..6827be410 100644 --- a/src/components/connection-modal/connecting-step.jsx +++ b/src/components/connection-modal/connecting-step.jsx @@ -14,7 +14,7 @@ const ConnectingStep = props => ( onClick={props.onSearch} > diff --git a/src/components/connection-modal/connection-modal.jsx b/src/components/connection-modal/connection-modal.jsx index 73699b937..c7f9c3390 100644 --- a/src/components/connection-modal/connection-modal.jsx +++ b/src/components/connection-modal/connection-modal.jsx @@ -11,13 +11,6 @@ import ErrorStep from './error-step.jsx'; import styles from './connection-modal.css'; -const phases = { - scanning: ScanningStep, - connecting: ConnectingStep, - connected: ConnectedStep, - error: ErrorStep -}; - const ConnectionModalComponent = props => ( ( onRequestClose={props.onCancel} > - {React.createElement(phases[props.phase], props)} + {props.phase === 'scanning' && } + {props.phase === 'connecting' && } + {props.phase === 'connected' && } + {props.phase === 'error' && } ); ConnectionModalComponent.propTypes = { onCancel: PropTypes.func.isRequired, - onSearch: PropTypes.func.isRequired, phase: PropTypes.string.isRequired, title: PropTypes.string.isRequired }; diff --git a/src/components/connection-modal/error-step.jsx b/src/components/connection-modal/error-step.jsx index 451c7ab37..8fab3e1f7 100644 --- a/src/components/connection-modal/error-step.jsx +++ b/src/components/connection-modal/error-step.jsx @@ -14,7 +14,7 @@ const ErrorStep = props => ( onClick={props.onSearch} > diff --git a/src/components/connection-modal/scanning-step.jsx b/src/components/connection-modal/scanning-step.jsx index c5fc4bbe6..10647b0da 100644 --- a/src/components/connection-modal/scanning-step.jsx +++ b/src/components/connection-modal/scanning-step.jsx @@ -11,14 +11,20 @@ const ScanningStep = props => ( {props.searching ? ( props.devices.length === 0 ? ( - search icon here + {'👀Scanning👀'} ) : ( props.devices.map(device => ( {device.name} )) ) ) : ( - No devices found, click on this hyperlink right now + + + )} @@ -34,7 +40,7 @@ const ScanningStep = props => ( onClick={props.onSearch} > diff --git a/src/containers/connection-modal.jsx b/src/containers/connection-modal.jsx index 0860b50b6..45fbec0aa 100644 --- a/src/containers/connection-modal.jsx +++ b/src/containers/connection-modal.jsx @@ -2,13 +2,13 @@ import PropTypes from 'prop-types'; import React from 'react'; import bindAll from 'lodash.bindall'; import ConnectionModalComponent from '../components/connection-modal/connection-modal.jsx'; +import VM from 'scratch-vm'; class ConnectionModal extends React.Component { constructor (props) { super(props); bindAll(this, [ - 'handleCancel', - 'handleSearch' + 'handleCancel' ]); this.state = { phase: 'scanning' @@ -17,16 +17,13 @@ class ConnectionModal extends React.Component { handleCancel () { this.props.onCancel(); } - handleSearch () { - this.props.onSearch(); - } render () { return ( ); } @@ -35,7 +32,7 @@ class ConnectionModal extends React.Component { ConnectionModal.propTypes = { id: PropTypes.string.isRequired, onCancel: PropTypes.func.isRequired, - onSearch: PropTypes.func.isRequired + vm: PropTypes.instanceOf(VM).isRequired }; export default ConnectionModal; diff --git a/src/containers/scanning-step.jsx b/src/containers/scanning-step.jsx index 44d0c5781..24b6a7c42 100644 --- a/src/containers/scanning-step.jsx +++ b/src/containers/scanning-step.jsx @@ -2,19 +2,28 @@ import PropTypes from 'prop-types'; import React from 'react'; import bindAll from 'lodash.bindall'; import ScanningStepComponent from '../components/connection-modal/scanning-step.jsx'; +import VM from 'scratch-vm'; class ScanningStep extends React.Component { constructor (props) { super(props); bindAll(this, [ - 'handleCancel', - 'handleSearch' + 'handleCancel' ]); this.state = { searching: true, devices: [] }; } + componentDidMount () { + this.props.vm.on('peripheral_added', id => { + // console.log('gui says peripheral added', id); + this.setState({devices:this.state.devices.concat(id)}) + }); + } + componentWillUnmount () { + // remove the listener + } handleCancel () { this.props.onCancel(); } @@ -24,10 +33,9 @@ class ScanningStep extends React.Component { render () { return ( ); } @@ -36,7 +44,8 @@ class ScanningStep extends React.Component { ScanningStep.propTypes = { id: PropTypes.string.isRequired, onCancel: PropTypes.func.isRequired, - onSearch: PropTypes.func.isRequired + onSearch: PropTypes.func.isRequired, + vm: PropTypes.instanceOf(VM).isRequired }; export default ScanningStep;