+
{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"
/>