import PropTypes from 'prop-types'; import React from 'react'; import keyMirror from 'keymirror'; import Box from '../box/box.jsx'; import Modal from '../../containers/modal.jsx'; import ScanningStep from '../../containers/scanning-step.jsx'; import AutoScanningStep from '../../containers/auto-scanning-step.jsx'; import ConnectingStep from './connecting-step.jsx'; import ConnectedStep from './connected-step.jsx'; import ErrorStep from './error-step.jsx'; import UnavailableStep from './unavailable-step.jsx'; import styles from './connection-modal.css'; const PHASES = keyMirror({ scanning: null, connecting: null, connected: null, error: null, unavailable: null }); const ConnectionModalComponent = props => ( {props.phase === PHASES.scanning && !props.useAutoScan && } {props.phase === PHASES.scanning && props.useAutoScan && } {props.phase === PHASES.connecting && } {props.phase === PHASES.connected && } {props.phase === PHASES.error && } {props.phase === PHASES.unavailable && } ); ConnectionModalComponent.propTypes = { connectingMessage: PropTypes.node.isRequired, connectionSmallIconURL: PropTypes.string, connectionTipIconURL: PropTypes.string, name: PropTypes.node, onCancel: PropTypes.func.isRequired, onHelp: PropTypes.func.isRequired, phase: PropTypes.oneOf(Object.keys(PHASES)).isRequired, title: PropTypes.string.isRequired, useAutoScan: PropTypes.bool.isRequired }; ConnectionModalComponent.defaultProps = { connectingMessage: 'Connecting' }; export { ConnectionModalComponent as default, PHASES };