fix(web): actions ratio limit support decimal values (#1100)

fix(web): make NumberField support decimal values
This commit is contained in:
stacksmash76 2023-09-10 17:50:24 +02:00 committed by GitHub
parent bdea9599d2
commit 1215036d89
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 4 deletions

View file

@ -609,6 +609,7 @@ interface NumberFieldProps {
min?: number; min?: number;
max?: number; max?: number;
tooltip?: JSX.Element; tooltip?: JSX.Element;
isDecimal?: boolean;
} }
export const NumberField = ({ export const NumberField = ({
@ -620,7 +621,8 @@ export const NumberField = ({
max, max,
tooltip, tooltip,
disabled, disabled,
required required,
isDecimal
}: NumberFieldProps) => ( }: NumberFieldProps) => (
<div className="col-span-12 sm:col-span-6"> <div className="col-span-12 sm:col-span-6">
<label <label
@ -642,7 +644,7 @@ export const NumberField = ({
step={step} step={step}
min={min} min={min}
max={max} max={max}
inputMode="numeric" inputMode={isDecimal ? "decimal" : "numeric"}
required={required} required={required}
className={classNames( className={classNames(
meta.touched && meta.error meta.touched && meta.error
@ -660,7 +662,11 @@ export const NumberField = ({
form.setFieldValue(field.name, 0); form.setFieldValue(field.name, 0);
return; return;
} }
form.setFieldValue(field.name, parseInt(event.target.value)); // Convert the input value to an integer using parseInt() to ensure that the backend can properly parse the numberfield as an integer. if (isDecimal) {
form.setFieldValue(field.name, parseFloat(event.target.value));
} else {
form.setFieldValue(field.name, parseInt(event.target.value));
}
}} }}
onWheel={(event) => { onWheel={(event) => {
if (event.currentTarget === document.activeElement) { if (event.currentTarget === document.activeElement) {

View file

@ -263,7 +263,8 @@ const TypeForm = ({ action, idx, clients }: TypeFormProps) => {
name={`actions.${idx}.limit_ratio`} name={`actions.${idx}.limit_ratio`}
label="Ratio limit" label="Ratio limit"
placeholder="Takes any number (0 is no limit)" placeholder="Takes any number (0 is no limit)"
step={1} // 0.5 does not work step={0.25}
isDecimal
/> />
<NumberField <NumberField
name={`actions.${idx}.limit_seed_time`} name={`actions.${idx}.limit_seed_time`}