Skip to content

Commit ea0192c

Browse files
committed
feat: formula input can now take px
1 parent 2571971 commit ea0192c

2 files changed

Lines changed: 41 additions & 5 deletions

File tree

components/core/CreateShape.js

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,31 @@ const CreateShape = (props) => {
250250
formulaNumbers = formulaNumbers.split(",");
251251
newVerticeCoordinates = formulaNumbers.map(x => {
252252
let values = x.trim();
253-
let xValue = values.substring(0, values.indexOf("%") + 1).trim();
254-
let yValue = values.substring(values.indexOf("%") + 1).trim();
253+
let xValue = "";
254+
let yValue = "";
255+
256+
if (values.includes("%") && values.includes("px")) {
257+
258+
let indexOfPX = values.indexOf("px");
259+
let indexOfPercentage = values.indexOf("%");
260+
261+
if (indexOfPX < indexOfPercentage) {
262+
xValue = values.substring(0, values.indexOf("px") + 2).trim();
263+
yValue = values.substring(values.indexOf("px") + 2).trim();
264+
}
265+
266+
if (indexOfPercentage < indexOfPX) {
267+
xValue = values.substring(0, values.indexOf("%") + 1).trim();
268+
yValue = values.substring(values.indexOf("%") + 1).trim();
269+
}
270+
271+
} else if (values.includes("%")) {
272+
xValue = values.substring(0, values.indexOf("%") + 1).trim();
273+
yValue = values.substring(values.indexOf("%") + 1).trim();
274+
} else if (values.includes("px")) {
275+
xValue = values.substring(0, values.indexOf("px") + 2).trim();
276+
yValue = values.substring(values.indexOf("px") + 2).trim();
277+
}
255278

256279
return {
257280
"x": xValue,

components/utils/DraggableVertice.js

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,22 @@ const CircleVertice = styled.div`
2525

2626
const DraggableVertice = (props) => {
2727

28-
// Calculates x and y coordinates based on verticeCoordinates percentages
29-
let x = parseFloat(props.x) * 280.0 / 100.0;
30-
let y = parseFloat(props.y) * 280.0 / 100.0;
28+
let x;
29+
let y;
30+
31+
// Calculates x coordinates based on percentage or pixels
32+
if (props.x.includes("%")) {
33+
x = parseFloat(props.x) * 280.0 / 100.0;
34+
} else if (props.x.includes("px")) {
35+
x = parseFloat(props.x);
36+
}
37+
38+
// Calulates y coordinates based on percentage or pixels
39+
if (props.y.includes("%")) {
40+
y = parseFloat(props.y) * 280.0 / 100.0;
41+
} else if (props.y.includes("px")) {
42+
y = parseFloat(props.y);
43+
}
3144

3245
// Handles when to show the close button
3346
const show = props.focusNumber === props.number;

0 commit comments

Comments
 (0)