add Penalty Decay slider to Chat page
This commit is contained in:
@@ -8,8 +8,9 @@ export const NumberInput: FC<{
|
||||
max: number,
|
||||
step?: number,
|
||||
onChange?: (ev: React.ChangeEvent<HTMLInputElement>, data: SliderOnChangeData) => void
|
||||
style?: CSSProperties
|
||||
}> = ({ value, min, max, step, onChange, style }) => {
|
||||
style?: CSSProperties,
|
||||
toFixed?: number
|
||||
}> = ({ value, min, max, step, onChange, style, toFixed = 2 }) => {
|
||||
return (
|
||||
<Input type="number" style={style} value={value.toString()} min={min} max={max} step={step}
|
||||
onChange={(e, data) => {
|
||||
@@ -22,7 +23,7 @@ export const NumberInput: FC<{
|
||||
value = Number(((
|
||||
Math.round((value - offset) / step) * step)
|
||||
+ offset)
|
||||
.toFixed(2)); // avoid precision issues
|
||||
.toFixed(toFixed)); // avoid precision issues
|
||||
}
|
||||
onChange(e, { value: Math.max(Math.min(value, max), min) });
|
||||
}
|
||||
|
||||
@@ -9,8 +9,9 @@ export const ValuedSlider: FC<{
|
||||
max: number,
|
||||
step?: number,
|
||||
input?: boolean
|
||||
onChange?: (ev: React.ChangeEvent<HTMLInputElement>, data: SliderOnChangeData) => void
|
||||
}> = ({ value, min, max, step, input, onChange }) => {
|
||||
onChange?: (ev: React.ChangeEvent<HTMLInputElement>, data: SliderOnChangeData) => void,
|
||||
toFixed?: number
|
||||
}> = ({ value, min, max, step, input, onChange, toFixed }) => {
|
||||
const sliderRef = useRef<HTMLInputElement>(null);
|
||||
useEffect(() => {
|
||||
if (step && sliderRef.current && sliderRef.current.parentElement) {
|
||||
@@ -25,7 +26,8 @@ export const ValuedSlider: FC<{
|
||||
max={max} step={step}
|
||||
onChange={onChange} />
|
||||
{input
|
||||
? <NumberInput style={{ minWidth: 0 }} value={value} min={min} max={max} step={step} onChange={onChange} />
|
||||
? <NumberInput style={{ minWidth: 0 }} value={value} min={min} max={max} step={step} onChange={onChange}
|
||||
toFixed={toFixed} />
|
||||
: <Text>{value}</Text>}
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user