From 58ced3cc2d9090fb00cfed6087a2950d0b8cb45d Mon Sep 17 00:00:00 2001 From: bflatastic Date: Sat, 12 Apr 2025 14:12:21 +0700 Subject: [PATCH] camera naming fix, button text truncate --- .../components/reusable/Popover/Popover.tsx | 16 ++++--- .../CameraSettingsModal.tsx | 43 +++++++++++++++---- .../PageEnigma/comps/PromptBox/PromptBox.tsx | 1 + 3 files changed, 46 insertions(+), 14 deletions(-) diff --git a/frontend/apps/editor3d/app/components/reusable/Popover/Popover.tsx b/frontend/apps/editor3d/app/components/reusable/Popover/Popover.tsx index 3d55b39045..7b1e9e0d2a 100644 --- a/frontend/apps/editor3d/app/components/reusable/Popover/Popover.tsx +++ b/frontend/apps/editor3d/app/components/reusable/Popover/Popover.tsx @@ -86,9 +86,15 @@ export const PopoverMenu = ({ {({ close }) => ( <> - {triggerIcon} - {mode === "toggle" && selectedItem ? selectedItem.label : null} - {mode === "default" && triggerLabel ? triggerLabel : null} + <> + {triggerIcon} + {mode === "toggle" && selectedItem ? ( + {selectedItem.label} + ) : null} + {mode === "default" && triggerLabel ? ( + {triggerLabel} + ) : null} +
-
+
{showIconsInList && item.icon} - {item.label} + {item.label}
{mode === "toggle" && ( { const selectedCamera = cameras.find((cam) => cam.id === selectedCameraId); const [isDragging, setIsDragging] = useState(false); + const [tempCameraName, setTempCameraName] = useState(""); + const [editingCameraId, setEditingCameraId] = useState(null); + + useEffect(() => { + if (selectedCamera) { + setTempCameraName(selectedCamera.label); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [selectedCamera?.id]); useEffect(() => { const handlePointerUp = () => { @@ -67,16 +76,29 @@ export const CameraSettingsModal = ({ onCameraFocalLengthChange(id, value); }; + const handleNameBlur = () => { + if (selectedCamera && tempCameraName.trim() !== "") { + onCameraNameChange(selectedCamera.id, tempCameraName); + } else if (selectedCamera) { + setTempCameraName(selectedCamera.label); + } + setEditingCameraId(null); + }; + + const handleNameFocus = (id: string) => { + setEditingCameraId(id); + }; + return ( ( ))} @@ -154,10 +178,11 @@ export const CameraSettingsModal = ({ - selectedCamera && - onCameraNameChange(selectedCamera.id, e.target.value) + value={tempCameraName} + onChange={(e) => setTempCameraName(e.target.value)} + onBlur={handleNameBlur} + onFocus={() => + selectedCamera && handleNameFocus(selectedCamera.id) } className="text-sm" /> diff --git a/frontend/apps/editor3d/app/pages/PageEnigma/comps/PromptBox/PromptBox.tsx b/frontend/apps/editor3d/app/pages/PageEnigma/comps/PromptBox/PromptBox.tsx index f408398804..8203cc5294 100644 --- a/frontend/apps/editor3d/app/pages/PageEnigma/comps/PromptBox/PromptBox.tsx +++ b/frontend/apps/editor3d/app/pages/PageEnigma/comps/PromptBox/PromptBox.tsx @@ -652,6 +652,7 @@ export const PromptBox = () => { panelTitle="Camera" panelActionLabel="Settings" onPanelAction={() => setIsCameraSettingsOpen(true)} + buttonClassName="max-w-[130px] h-9" />