Disable continue if non validator is set

This commit is contained in:
Hristo Nedelkov 2023-10-09 15:07:03 +03:00
parent 65c2c9c5ef
commit 6580b72348
3 changed files with 16 additions and 5 deletions

View File

@ -1,4 +1,4 @@
import { useState } from 'react' import { useEffect, useState } from 'react'
import { Separator, YStack } from 'tamagui' import { Separator, YStack } from 'tamagui'
import { Text } from '@status-im/components' import { Text } from '@status-im/components'
@ -6,14 +6,20 @@ import WithdrawalAddress from './WithdrawalAddress'
import LinkWithArrow from '../../../components/General/LinkWithArrow' import LinkWithArrow from '../../../components/General/LinkWithArrow'
import ValidatorsMenuWithPrice from '../../../components/General/ValidatorsMenuWithPrice' import ValidatorsMenuWithPrice from '../../../components/General/ValidatorsMenuWithPrice'
import { CLIENT_SETUP_SUBTITLE } from '../../../constants' import { CLIENT_SETUP_SUBTITLE } from '../../../constants'
type ClientSetupProps = {
const ClientSetup = () => { setIsValidatorSet: (value: boolean) => void
}
const ClientSetup = ({ setIsValidatorSet }: ClientSetupProps) => {
const [validatorCount, setValidatorCount] = useState(0) const [validatorCount, setValidatorCount] = useState(0)
useEffect(() => {
setIsValidatorSet(validatorCount > 0)
}, [validatorCount])
const changeValidatorCountHandler = (value: string) => { const changeValidatorCountHandler = (value: string) => {
const numberValue = Number(value) const numberValue = Number(value)
if (!isNaN(numberValue)) { if (!isNaN(numberValue)) {
setValidatorCount(numberValue) setValidatorCount(numberValue)
} }
} }

View File

@ -11,6 +11,7 @@ type ContinueButton = {
activeStep: number activeStep: number
isConfirmPhraseStage: boolean isConfirmPhraseStage: boolean
subStepValidatorSetup: number subStepValidatorSetup: number
isValidatorSet?: boolean
} }
const ContinueButton = ({ const ContinueButton = ({
@ -18,6 +19,7 @@ const ContinueButton = ({
activeStep, activeStep,
isConfirmPhraseStage, isConfirmPhraseStage,
subStepValidatorSetup, subStepValidatorSetup,
isValidatorSet
}: ContinueButton) => { }: ContinueButton) => {
const { isCopyPastedPhrase, words, validWords } = useSelector( const { isCopyPastedPhrase, words, validWords } = useSelector(
(state: RootState) => state.keyGeneration, (state: RootState) => state.keyGeneration,
@ -68,7 +70,7 @@ const ContinueButton = ({
alignItems: 'end', alignItems: 'end',
}} }}
> >
<Button onPress={continueHandler} size={40} disabled={isDisabled()}> <Button onPress={continueHandler} size={40} disabled={isDisabled() || (isValidatorSet === false && activeStep === 3)}>
{activeStep < 6 ? 'Continue' : 'Continue to Dashboard'} {activeStep < 6 ? 'Continue' : 'Continue to Dashboard'}
</Button> </Button>
</Stack> </Stack>

View File

@ -33,6 +33,8 @@ const ValidatorOnboarding = () => {
const [subStepAdvisories, setSubStepAdvisories] = useState(0) const [subStepAdvisories, setSubStepAdvisories] = useState(0)
const [isValidatorSet, setIsValidatorSet] = useState(false)
const { isCopyPastedPhrase, words } = useSelector((state: RootState) => state.keyGeneration) const { isCopyPastedPhrase, words } = useSelector((state: RootState) => state.keyGeneration)
const { isWalletConnected } = useSelector((state: RootState) => state.deposit) const { isWalletConnected } = useSelector((state: RootState) => state.deposit)
const navigate = useNavigate() const navigate = useNavigate()
@ -127,7 +129,7 @@ const ValidatorOnboarding = () => {
{activeStep === 2 && subStepValidatorSetup === 1 && <ValidatorSetupInstall />} {activeStep === 2 && subStepValidatorSetup === 1 && <ValidatorSetupInstall />}
{activeStep === 2 && subStepValidatorSetup === 2 && <ConsensusSelection />} {activeStep === 2 && subStepValidatorSetup === 2 && <ConsensusSelection />}
{activeStep === 2 && subStepValidatorSetup === 3 && <ActivationValidatorSetup />} {activeStep === 2 && subStepValidatorSetup === 3 && <ActivationValidatorSetup />}
{activeStep === 3 && <ClientSetup />} {activeStep === 3 && <ClientSetup setIsValidatorSet={setIsValidatorSet}/>}
{activeStep === 4 && <KeyGeneration isConfirmPhraseStage={isConfirmPhraseStage} />} {activeStep === 4 && <KeyGeneration isConfirmPhraseStage={isConfirmPhraseStage} />}
{activeStep === 5 && <Deposit />} {activeStep === 5 && <Deposit />}
@ -159,6 +161,7 @@ const ValidatorOnboarding = () => {
continueHandler={continueHandler} continueHandler={continueHandler}
isConfirmPhraseStage={isConfirmPhraseStage} isConfirmPhraseStage={isConfirmPhraseStage}
subStepValidatorSetup={subStepValidatorSetup} subStepValidatorSetup={subStepValidatorSetup}
isValidatorSet={isValidatorSet}
/> />
</YStack> </YStack>
</div> </div>