Fix inputs for comma locales (#171)
* Fix for comma decimal separator locales * Accept tickSizeDecimals 0 * Use FloatValue as value for Size Input * Use formattedValue to handle prefix/suffix * Use MustBigNumber.toString()
This commit is contained in:
@@ -206,7 +206,7 @@ export const TradeForm = ({
|
||||
dispatch(setTradeFormInputs({ triggerPriceInput: value }));
|
||||
},
|
||||
value: triggerPriceInput ?? '',
|
||||
decimals: tickSizeDecimals || USD_DECIMALS,
|
||||
decimals: tickSizeDecimals ?? USD_DECIMALS,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -226,7 +226,7 @@ export const TradeForm = ({
|
||||
dispatch(setTradeFormInputs({ limitPriceInput: value }));
|
||||
},
|
||||
value: limitPriceInput,
|
||||
decimals: tickSizeDecimals || USD_DECIMALS,
|
||||
decimals: tickSizeDecimals ?? USD_DECIMALS,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ export const TradeSizeInputs = () => {
|
||||
useSelector(getCurrentMarketConfig, shallowEqual) || {};
|
||||
const { size, usdcSize, leverage, input: lastEditedInput } = inputTradeSizeData || {};
|
||||
const { needsLeverage } = currentTradeInputOptions || {};
|
||||
const decimals = stepSizeDecimals || TOKEN_DECIMALS;
|
||||
const decimals = stepSizeDecimals ?? TOKEN_DECIMALS;
|
||||
|
||||
const { amountInput, usdAmountInput, leverageInput } = useSelector(
|
||||
getTradeFormInputs,
|
||||
@@ -70,22 +70,34 @@ export const TradeSizeInputs = () => {
|
||||
}
|
||||
}, [size, usdcSize, leverage, lastEditedInput]);
|
||||
|
||||
const onSizeInput = ({ value, floatValue }: { value: string; floatValue?: number }) => {
|
||||
dispatch(setTradeFormInputs({ amountInput: value }));
|
||||
const onSizeInput = ({
|
||||
floatValue,
|
||||
formattedValue,
|
||||
}: {
|
||||
floatValue?: number;
|
||||
formattedValue: string;
|
||||
}) => {
|
||||
dispatch(setTradeFormInputs({ amountInput: MustBigNumber(floatValue).toString() }));
|
||||
const newAmount = MustBigNumber(floatValue).toFixed(decimals);
|
||||
|
||||
abacusStateManager.setTradeValue({
|
||||
value: value === '' || newAmount === 'NaN' ? null : newAmount,
|
||||
value: formattedValue === '' || newAmount === 'NaN' ? null : newAmount,
|
||||
field: TradeInputField.size,
|
||||
});
|
||||
};
|
||||
|
||||
const onUSDCInput = ({ value, floatValue }: { value: string; floatValue?: number }) => {
|
||||
dispatch(setTradeFormInputs({ usdAmountInput: value }));
|
||||
const newUsdcAmount = MustBigNumber(floatValue).toFixed();
|
||||
const onUSDCInput = ({
|
||||
floatValue,
|
||||
formattedValue,
|
||||
}: {
|
||||
floatValue?: number;
|
||||
formattedValue: string;
|
||||
}) => {
|
||||
dispatch(setTradeFormInputs({ usdAmountInput: MustBigNumber(floatValue).toString() }));
|
||||
const newUsdcAmount = MustBigNumber(floatValue).toFixed(tickSizeDecimals || USD_DECIMALS);
|
||||
|
||||
abacusStateManager.setTradeValue({
|
||||
value: value === '' || newUsdcAmount === 'NaN' ? null : newUsdcAmount,
|
||||
value: formattedValue === '' || newUsdcAmount === 'NaN' ? null : newUsdcAmount,
|
||||
field: TradeInputField.usdcSize,
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user