From f0095470c8f8449ca4f8bd85102a7c711158c917 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Sat, 9 May 2026 15:00:47 +0330 Subject: [PATCH] round numbers --- .../components/sidebar/ObjectSettings.tsx | 73 +++++++++++++------ 1 file changed, 50 insertions(+), 23 deletions(-) diff --git a/src/pages/editor/components/sidebar/ObjectSettings.tsx b/src/pages/editor/components/sidebar/ObjectSettings.tsx index e2c63c4..d9a31b3 100644 --- a/src/pages/editor/components/sidebar/ObjectSettings.tsx +++ b/src/pages/editor/components/sidebar/ObjectSettings.tsx @@ -22,6 +22,27 @@ type ObjectSettingsProps = { onDelete: (id: string) => void; }; +const roundNumbersDeep = (value: T): T => { + if (typeof value === "number") { + return Math.round(value) as T; + } + + if (Array.isArray(value)) { + return value.map((item) => roundNumbersDeep(item)) as T; + } + + if (value && typeof value === "object") { + const roundedObject = Object.entries(value).reduce>((acc, [key, nestedValue]) => { + acc[key] = roundNumbersDeep(nestedValue); + return acc; + }, {}); + + return roundedObject as T; + } + + return value; +}; + const ObjectSettings = ({ selectedObject, pageWidth, @@ -29,6 +50,12 @@ const ObjectSettings = ({ onUpdate, onDelete, }: ObjectSettingsProps) => { + const roundedSelectedObject = roundNumbersDeep(selectedObject); + + const handleRoundedUpdate = (id: string, updates: Partial) => { + onUpdate(id, roundNumbersDeep(updates)); + }; + return (
@@ -44,54 +71,54 @@ const ObjectSettings = ({ {/* Mask Settings for all objects */} - + - {selectedObject.type === "text" && } - {selectedObject.type === "text" && ( - + {roundedSelectedObject.type === "text" && } + {roundedSelectedObject.type === "text" && ( + )} - {selectedObject.type === "rectangle" && ( - + {roundedSelectedObject.type === "rectangle" && ( + )} - {(selectedObject.type === "line" || selectedObject.type === "arrow") && ( - + {(roundedSelectedObject.type === "line" || roundedSelectedObject.type === "arrow") && ( + )} - {selectedObject.type === "image" && ( - + {roundedSelectedObject.type === "image" && ( + )} - {selectedObject.type === "link" && ( - + {roundedSelectedObject.type === "link" && ( + )} - {selectedObject.type === "video" && ( - + {roundedSelectedObject.type === "video" && ( + )} - {(selectedObject.type === "document" || selectedObject.type === "sticker") && ( + {(roundedSelectedObject.type === "document" || roundedSelectedObject.type === "sticker") && ( )} - {selectedObject.type === "grid" && ( - + {roundedSelectedObject.type === "grid" && ( + )} - +
); };