Spaces:
Sleeping
Sleeping
File size: 1,295 Bytes
c40c75a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
import React from "react";
import { NumberInput } from "@tremor/react";
interface NumericalInputProps {
step?: number;
style?: React.CSSProperties;
placeholder?: string;
min?: number;
max?: number;
onChange?: any; // Using any to avoid type conflicts with Tremor's NumberInput
[key: string]: any;
}
/**
* A reusable numerical input component
* @param {Object} props - Component props
* @param {number} [props.step=0.01] - Step increment for the input
* @param {Object} [props.style] - Custom styles to apply
* @param {string} [props.placeholder="Enter a numerical value"] - Placeholder text
* @param {number} [props.min] - Minimum value
* @param {number} [props.max] - Maximum value
* @param {Function} [props.onChange] - On change handler
* @param {any} props.rest - Additional props passed to NumberInput
*/
const NumericalInput: React.FC<NumericalInputProps> = ({
step = 0.01,
style = { width: "100%" },
placeholder = "Enter a numerical value",
min,
max,
onChange,
...rest
}) => {
return (
<NumberInput
onWheel={ event => event.currentTarget.blur()}
step={step}
style={style}
placeholder={placeholder}
min={min}
max={max}
onChange={onChange}
{...rest}
/>
);
};
export default NumericalInput; |