soiz1's picture
Upload 1525 files
f2bee8a verified
import {FormattedMessage} from 'react-intl';
import PropTypes from 'prop-types';
import React from 'react';
import keyMirror from 'keymirror';
import classNames from 'classnames';
import Box from '../box/box.jsx';
import Dots from './dots.jsx';
import closeIcon from '../close-button/icon--close.svg';
import radarIcon from './icons/searching.png';
import bluetoothIcon from './icons/bluetooth-white.svg';
import backIcon from './icons/back.svg';
import styles from './connection-modal.css';
const PHASES = keyMirror({
prescan: null,
pressbutton: null,
notfound: null
});
const AutoScanningStep = props => (
<Box className={styles.body}>
<Box className={styles.activityArea}>
<div className={styles.activityAreaInfo}>
<div className={styles.centeredRow}>
{props.phase === PHASES.prescan && (
<React.Fragment>
<img
className={styles.radarBig}
src={radarIcon}
/>
<img
className={styles.bluetoothCenteredIcon}
src={bluetoothIcon}
/>
</React.Fragment>
)}
{props.phase === PHASES.pressbutton && (
<React.Fragment>
<img
className={classNames(styles.radarBig, styles.radarSpin)}
src={radarIcon}
/>
<img
className={styles.connectionTipIcon}
src={props.connectionTipIconURL}
/>
</React.Fragment>
)}
{props.phase === PHASES.notfound && (
<Box className={styles.instructions}>
<FormattedMessage
defaultMessage="No devices found"
description="Text shown when no devices could be found"
id="gui.connection.auto-scanning.noPeripheralsFound"
/>
</Box>
)}
</div>
</div>
</Box>
<Box className={styles.bottomArea}>
<Box className={classNames(styles.bottomAreaItem, styles.instructions)}>
{props.phase === PHASES.prescan && (
<FormattedMessage
defaultMessage="Have your device nearby, then begin searching."
description="Prompt for beginning the search"
id="gui.connection.auto-scanning.prescan"
/>
)}
{props.phase === PHASES.pressbutton && (
<FormattedMessage
defaultMessage="Press the button on your device."
description="Prompt for pushing the button on the device"
id="gui.connection.auto-scanning.pressbutton"
/>
)}
</Box>
<Dots
className={styles.bottomAreaItem}
counter={0}
total={3}
/>
<Box className={classNames(styles.bottomAreaItem, styles.buttonRow)}>
{props.phase === PHASES.prescan && (
<button
className={styles.connectionButton}
onClick={props.onStartScan}
>
<FormattedMessage
defaultMessage="Start Searching"
description="Button in prompt for starting a search"
id="gui.connection.auto-scanning.start-search"
/>
</button>
)}
{props.phase === PHASES.pressbutton && (
<div className={styles.segmentedButton}>
<button
disabled
className={styles.connectionButton}
>
<FormattedMessage
defaultMessage="Searching..."
description="Label indicating that search is in progress"
id="gui.connection.connecting-searchbutton"
/>
</button>
<button
className={styles.connectionButton}
onClick={props.onRefresh}
>
<img
className={styles.abortConnectingIcon}
src={closeIcon}
/>
</button>
</div>
)}
{props.phase === PHASES.notfound && (
<button
className={styles.connectionButton}
onClick={props.onRefresh}
>
<img
className={styles.buttonIconLeft}
src={backIcon}
/>
<FormattedMessage
defaultMessage="Try again"
description="Button in prompt for trying a device search again"
id="gui.connection.auto-scanning.try-again"
/>
</button>
)}
</Box>
</Box>
</Box>
);
AutoScanningStep.propTypes = {
connectionTipIconURL: PropTypes.string,
onRefresh: PropTypes.func,
onStartScan: PropTypes.func,
phase: PropTypes.oneOf(Object.keys(PHASES))
};
AutoScanningStep.defaultProps = {
phase: PHASES.prescan
};
export {
AutoScanningStep as default,
PHASES
};