From 1ffa3d2d734d831184b429ab72bd069858df2d85 Mon Sep 17 00:00:00 2001 From: sudhir Date: Wed, 13 May 2026 22:45:58 +0530 Subject: [PATCH] Restore item controls and guard placement asset bounds --- packages/editor/src/components/editor/index.tsx | 2 +- .../editor/src/components/tools/item/item-tool.tsx | 12 +++++++++--- .../tools/item/use-placement-coordinator.tsx | 8 ++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/editor/src/components/editor/index.tsx b/packages/editor/src/components/editor/index.tsx index 8515223c..9b7aa176 100644 --- a/packages/editor/src/components/editor/index.tsx +++ b/packages/editor/src/components/editor/index.tsx @@ -607,7 +607,7 @@ const ViewerSceneContent = memo(function ViewerSceneContent({ {!isFirstPersonMode && } - {isFirstPersonMode && } + ) }) diff --git a/packages/editor/src/components/tools/item/item-tool.tsx b/packages/editor/src/components/tools/item/item-tool.tsx index 28589ec5..6bb1ffae 100644 --- a/packages/editor/src/components/tools/item/item-tool.tsx +++ b/packages/editor/src/components/tools/item/item-tool.tsx @@ -1,10 +1,10 @@ +import type { AssetInput } from '@pascal-app/core' import { sfxEmitter } from '../../../lib/sfx-bus' import useEditor from '../../../store/use-editor' import { useDraftNode } from './use-draft-node' import { usePlacementCoordinator } from './use-placement-coordinator' -export const ItemTool: React.FC = () => { - const selectedItem = useEditor((state) => state.selectedItem) +function ItemPlacementContent({ selectedItem }: { selectedItem: AssetInput }) { const draftNode = useDraftNode() const cursor = usePlacementCoordinator({ @@ -21,6 +21,12 @@ export const ItemTool: React.FC = () => { }, }) - if (!selectedItem) return null return <>{cursor} } + +export const ItemTool: React.FC = () => { + const selectedItem = useEditor((state) => state.selectedItem) + + if (!selectedItem) return null + return +} diff --git a/packages/editor/src/components/tools/item/use-placement-coordinator.tsx b/packages/editor/src/components/tools/item/use-placement-coordinator.tsx index fcc47767..fdafe363 100644 --- a/packages/editor/src/components/tools/item/use-placement-coordinator.tsx +++ b/packages/editor/src/components/tools/item/use-placement-coordinator.tsx @@ -116,10 +116,10 @@ function expandBoundsToGrid( function getFallbackPreviewBounds( item: import('@pascal-app/core').ItemNode | null, - asset: AssetInput, - attachTo: AssetInput['attachTo'], + asset: AssetInput | null | undefined, + attachTo: AssetInput['attachTo'] | null | undefined, ): PreviewBounds { - const dims = item ? getScaledDimensions(item) : (asset.dimensions ?? DEFAULT_DIMENSIONS) + const dims = item ? getScaledDimensions(item) : (asset?.dimensions ?? DEFAULT_DIMENSIONS) return { min: [-dims[0] / 2, 0, attachTo === 'wall-side' ? -dims[2] : -dims[2] / 2], max: [dims[0] / 2, dims[1], attachTo === 'wall-side' ? 0 : dims[2] / 2], @@ -1341,7 +1341,7 @@ export function usePlacementCoordinator(config: PlacementCoordinatorConfig): Rea const dims = getGridAlignedDimensions(rawDims, initialAttachTo, gridSnapStep) const wallSideZOffset = initialAttachTo === 'wall-side' ? -dims[2] / 2 : 0 const initialDimensionBounds = expandBoundsToGrid( - getFallbackPreviewBounds(initialDraft, config.asset!, initialAttachTo), + getFallbackPreviewBounds(initialDraft, config.asset, initialAttachTo), initialAttachTo, gridSnapStep, )