Skip to content
This repository was archived by the owner on Apr 18, 2024. It is now read-only.

Commit 196cd17

Browse files
fix: DEV-3835: Manual editing keypoints coordinates causes data corruption (#1030)
1 parent 4c27f26 commit 196cd17

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

src/components/SidePanels/DetailsPanel/RegionEditor.tsx

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { observe } from "mobx";
22
import { observer } from "mobx-react";
33
import { getType, IAnyType, isLiteralType, isOptionalType, isPrimitiveType, isUnionType, types } from "mobx-state-tree";
4-
import { number } from "mobx-state-tree/dist/internal";
54
import { ChangeEvent, FC, HTMLInputTypeAttribute, InputHTMLAttributes, KeyboardEvent, useCallback, useEffect, useMemo, useState } from "react";
65
import { IconPropertyAngle } from "../../../assets/icons";
76
import { Block, Elem, useBEM } from "../../../utils/bem";
@@ -185,16 +184,23 @@ const RegionInput: FC<RegionInputProps> = ({
185184
}, [onChangeValue, type]);
186185

187186
const onChangeHandler = useCallback((e: ChangeEvent<HTMLInputElement>) => {
188-
let value = e.target.value;
187+
let value: number | string = e.target.value;
189188
let safeValue = true;
190189

191-
if (type === "number" && !value.match(/^([0-9,.]*)$/ig)) {
192-
safeValue = false;
193-
}
194190

195-
if (type === "number" && value.match(/(,|\.)$/)){
196-
value = value.replace(/,/, '.');
197-
safeValue = false;
191+
if (type === "number") {
192+
if (!value.match(/^([0-9,.]*)$/ig)) {
193+
safeValue = false;
194+
}
195+
196+
if (value.match(/(,|\.)$/)){
197+
value = value.replace(/,/, '.');
198+
safeValue = false;
199+
}
200+
201+
if (safeValue){
202+
value = parseFloat(value);
203+
}
198204
}
199205

200206
updateValue(value, safeValue);

0 commit comments

Comments
 (0)