diff --git a/src/components/ManaCalculator/components/DelegatorSettings.tsx b/src/components/ManaCalculator/components/DelegatorSettings.tsx index 37c8f0f3f10..d4e9284f516 100644 --- a/src/components/ManaCalculator/components/DelegatorSettings.tsx +++ b/src/components/ManaCalculator/components/DelegatorSettings.tsx @@ -1,8 +1,9 @@ import React from 'react'; import { Details } from '@docusaurus/theme-common/Details'; import { useManaState } from '../hooks'; -import { fromMicro, toMicro } from '../utils'; +import { fromMicro } from '../utils'; import Select from 'react-select'; +import { ValidatedInput } from '../../ValidatedInput/ValidatedInput'; export function DelegatorSettings() { const { state, handleOwnStakeChange, handleValidatorChange } = useManaState(); @@ -30,11 +31,13 @@ export function DelegatorSettings() { - handleOwnStakeChange(toMicro(Number(e.target.value)))} - > + min={0} + max={fromMicro(state.heldTokens)} + onChange={handleOwnStakeChange} + /> ); } diff --git a/src/components/ManaCalculator/components/OtherParametersSection.tsx b/src/components/ManaCalculator/components/OtherParametersSection.tsx index 197e68d5ddd..aff21606c24 100644 --- a/src/components/ManaCalculator/components/OtherParametersSection.tsx +++ b/src/components/ManaCalculator/components/OtherParametersSection.tsx @@ -4,6 +4,7 @@ import Select from 'react-select'; import { UserType } from '../enums'; import { CongestionType } from '../enums'; import { AdvancedSettingsValidator } from './AdvancedSettingsValidator'; +import { ValidatedInput } from '../../ValidatedInput/ValidatedInput'; export function OtherParametersSection() { const { @@ -34,18 +35,22 @@ export function OtherParametersSection() { />
- handleInitialEpochChange(Number(e.target.value))} - > + onChange={handleInitialEpochChange} + />
- handleFinalEpochChange(Number(e.target.value))} - > + onChange={handleFinalEpochChange} + /> {state.userType === UserType.HOLDER ? ( <> ) : ( diff --git a/src/components/ManaCalculator/components/RoleSection.tsx b/src/components/ManaCalculator/components/RoleSection.tsx index 6897fdcb869..7e0b2d27b65 100644 --- a/src/components/ManaCalculator/components/RoleSection.tsx +++ b/src/components/ManaCalculator/components/RoleSection.tsx @@ -2,12 +2,15 @@ import React from 'react'; import { useManaState } from '../hooks'; import Select from 'react-select'; import { UserType } from '../enums'; -import { fromMicro, toMicro } from '../utils'; +import { fromMicro } from '../utils'; import { ValidatorSettings } from './ValidatorSettings'; import { DelegatorSettings } from './DelegatorSettings'; +import { ValidatedInput } from '../../ValidatedInput/ValidatedInput'; export function RoleSection() { - const { state, handleUserChange, handleOwnHoldChange } = useManaState(); + const { state, handleUserChange, handleOwnHoldChange, maxAvailableSupply } = + useManaState(); + return (

Role configuration

@@ -27,11 +30,13 @@ export function RoleSection() { />
- handleOwnHoldChange(toMicro(Number(e.target.value)))} - > + onChange={handleOwnHoldChange} + />
{state.userType === UserType.VALIDATOR ? ( diff --git a/src/components/ManaCalculator/components/ValidatorCard.tsx b/src/components/ManaCalculator/components/ValidatorCard.tsx index 517a5293a46..139ee1b5695 100644 --- a/src/components/ManaCalculator/components/ValidatorCard.tsx +++ b/src/components/ManaCalculator/components/ValidatorCard.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { useManaState } from '../hooks'; import { ValidatorProps } from '../types'; -import { fromMicro, toMicro } from '../utils'; +import { fromMicro } from '../utils'; +import { ValidatedInput } from '../../ValidatedInput/ValidatedInput'; export function ValidatorCard({ validator, @@ -16,36 +17,54 @@ export function ValidatorCard({ handleDelegatedStakeChange, handlePFChange, handleFCChange, + maxAvailableSupply, } = useManaState(); + + const maxValidatorLockedStake = + fromMicro(maxAvailableSupply) + fromMicro(validator.lockedStake); + + const maxValidatorDelegatedStake = + fromMicro(maxAvailableSupply) + fromMicro(validator.delegatedStake); + return ( <>
Validator {id + 1}
- handleStakeChange(toMicro(Number(e.target.value)), id)} - > - - handleDelegatedStakeChange(toMicro(Number(e.target.value)), id) - } - > - handlePFChange(Number(e.target.value), id)} - > - handleFCChange(Number(e.target.value), id)} - > +
+ handleStakeChange(value, id)} + /> +
+
+ handleDelegatedStakeChange(value, id)} + /> +
+
+ handlePFChange(value, id)} + /> +
+
+ handleFCChange(value, id)} + /> +