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)}
+ />
+