/* * Copyright (c) 2015 Nordic Semiconductor ASA * * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause */ import React, { useState } from 'react'; import { ProgressBar } from 'react-bootstrap'; import Form from 'react-bootstrap/Form'; import { useDispatch, useSelector } from 'react-redux'; import { Dialog, DialogButton } from '../../Dialog/Dialog'; import { deviceSetupUserInputReceived, getDeviceSetupChoices, getDeviceSetupMessage, getDeviceSetupProgress, getDeviceSetupProgressMessage, getDeviceSetupUserInputCallback, isDeviceSetupDialogVisible, } from '../deviceSetupSlice'; export default () => { const dispatch = useDispatch(); const [selectedChoices, setSelectedChoices] = useState(0); const isVisible = useSelector(isDeviceSetupDialogVisible); const message = useSelector(getDeviceSetupMessage); const progressMessage = useSelector(getDeviceSetupProgressMessage); const progress = useSelector(getDeviceSetupProgress); const choices = useSelector(getDeviceSetupChoices); const onUserInput = useSelector(getDeviceSetupUserInputCallback); const isInProgress = progress !== undefined; return ( {!progress && !progressMessage && (
{message}
)} {choices && ( {choices.map((choice, index) => ( setSelectedChoices(index)} label={choice} checked={index === selectedChoices} /> ))} )} {progressMessage !== undefined && ( Status: {` ${progressMessage}`} )} {progress !== undefined && ( )}
{ if (onUserInput) { dispatch(deviceSetupUserInputReceived()); onUserInput( false, choices ? selectedChoices : undefined, ); } }} disabled={!onUserInput || isInProgress} > Program { if (onUserInput) { dispatch(deviceSetupUserInputReceived()); onUserInput(true); } }} disabled={isInProgress} > {choices ? 'Cancel' : 'No'}
); };