mirror of
https://github.com/zadam/trilium.git
synced 2025-11-03 03:46:37 +01:00
fix(settings): max content width forces minimum when typing (closes #7423)
This commit is contained in:
@@ -9,22 +9,26 @@ interface FormTextBoxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "
|
||||
}
|
||||
|
||||
export default function FormTextBox({ inputRef, className, type, currentValue, onChange, onBlur, autoFocus, ...rest}: FormTextBoxProps) {
|
||||
if (type === "number" && currentValue) {
|
||||
const { min, max } = rest;
|
||||
const currentValueNum = parseInt(currentValue, 10);
|
||||
if (min && currentValueNum < parseInt(String(min), 10)) {
|
||||
currentValue = String(min);
|
||||
} else if (max && currentValueNum > parseInt(String(max), 10)) {
|
||||
currentValue = String(max);
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
if (autoFocus) {
|
||||
inputRef?.current?.focus();
|
||||
}
|
||||
}, []);
|
||||
|
||||
function applyLimits(value: string) {
|
||||
if (type === "number") {
|
||||
const { min, max } = rest;
|
||||
const currentValueNum = parseInt(value, 10);
|
||||
if (min && currentValueNum < parseInt(String(min), 10)) {
|
||||
return String(min);
|
||||
} else if (max && currentValueNum > parseInt(String(max), 10)) {
|
||||
return String(max);
|
||||
}
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
return (
|
||||
<input
|
||||
ref={inputRef}
|
||||
@@ -33,11 +37,13 @@ export default function FormTextBox({ inputRef, className, type, currentValue, o
|
||||
value={currentValue}
|
||||
onInput={onChange && (e => {
|
||||
const target = e.currentTarget;
|
||||
onChange?.(target.value, target.validity);
|
||||
const currentValue = applyLimits(e.currentTarget.value);
|
||||
onChange?.(currentValue, target.validity);
|
||||
})}
|
||||
onBlur={onBlur && (e => {
|
||||
const target = e.currentTarget;
|
||||
onBlur(target.value);
|
||||
onBlur={(e => {
|
||||
const currentValue = applyLimits(e.currentTarget.value);
|
||||
e.currentTarget.value = currentValue;
|
||||
onBlur?.(currentValue);
|
||||
})}
|
||||
{...rest}
|
||||
/>
|
||||
@@ -49,6 +55,6 @@ export function FormTextBoxWithUnit(props: FormTextBoxProps & { unit: string })
|
||||
<label class="input-group tn-number-unit-pair">
|
||||
<FormTextBox {...props} />
|
||||
<span class="input-group-text">{props.unit}</span>
|
||||
</label>
|
||||
</label>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user