Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions packages/core/src/events/bus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -189,11 +189,6 @@ type WindowAnimationEvents = {
}
}

type PresetEvents = {
'preset:generate-thumbnail': { presetId: string; nodeId: string }
'preset:thumbnail-updated': { presetId: string; thumbnailUrl: string }
}

type ThumbnailEvents = {
'thumbnail:before-capture': undefined
'thumbnail:after-capture': undefined
Expand Down Expand Up @@ -243,7 +238,6 @@ type EditorEvents = GridEvents &
GuideEvents &
DoorAnimationEvents &
WindowAnimationEvents &
PresetEvents &
ThumbnailEvents &
SnapshotEvents &
AIChatEvents
Expand Down
110 changes: 49 additions & 61 deletions packages/editor/src/components/editor/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import {
} from 'react'
import { ViewerOverlay } from '../../components/viewer-overlay'
import { ViewerZoneSystem } from '../../components/viewer-zone-system'
import { type PresetsAdapter, PresetsProvider } from '../../contexts/presets-context'
import { type SaveStatus, useAutoSave } from '../../hooks/use-auto-save'
import { useKeyboard } from '../../hooks/use-keyboard'
import {
Expand Down Expand Up @@ -61,7 +60,6 @@ import { FloatingActionMenu } from './floating-action-menu'
import { FloatingBuildingActionMenu } from './floating-building-action-menu'
import { FloorplanPanel } from './floorplan-panel'
import { Grid } from './grid'
import { PresetThumbnailGenerator } from './preset-thumbnail-generator'
import { NodeArrowHandles } from './node-arrow-handles'
import { SelectionManager } from './selection-manager'
import { SiteEdgeLabels } from './site-edge-labels'
Expand Down Expand Up @@ -155,9 +153,6 @@ export interface EditorProps {
sitePanelProps?: SitePanelProps
extraSidebarPanels?: ExtraPanel[]

// Presets storage backend (defaults to localStorage)
presetsAdapter?: PresetsAdapter

// Command palette fallback when no commands match
commandPaletteEmptyAction?: CommandPaletteEmptyAction
}
Expand Down Expand Up @@ -577,9 +572,7 @@ function PaintCursorBadge({
// grid lines when the user picks a finer snap (0.25 / 0.1 / 0.05).
function SnapAwareGrid() {
const gridSnapStep = useEditor((s) => s.gridSnapStep)
return (
<Grid cellColor="#aaa" cellSize={gridSnapStep} fadeDistance={500} sectionColor="#ccc" />
)
return <Grid cellColor="#aaa" cellSize={gridSnapStep} fadeDistance={500} sectionColor="#ccc" />
}

// ── Viewer scene content: memoized so <Viewer> doesn't re-render on mode/viewMode changes ──
Expand Down Expand Up @@ -615,7 +608,6 @@ const ViewerSceneContent = memo(function ViewerSceneContent({
{isFirstPersonMode && <FirstPersonControls />}
<CustomCameraControls />
<ThumbnailGenerator onThumbnailCapture={onThumbnailCapture} />
<PresetThumbnailGenerator />
{!isFirstPersonMode && <SiteEdgeLabels />}
<InteractiveSystem />
</>
Expand Down Expand Up @@ -952,7 +944,6 @@ export default function Editor({
settingsPanelProps,
sitePanelProps,
extraSidebarPanels,
presetsAdapter,
commandPaletteEmptyAction,
}: EditorProps) {
const isFirstPersonMode = useEditor((s) => s.isFirstPersonMode)
Expand Down Expand Up @@ -1098,7 +1089,6 @@ export default function Editor({
<StairEditSystem />
<CustomCameraControls />
<ThumbnailGenerator onThumbnailCapture={onThumbnailCapture} />
<PresetThumbnailGenerator />
<InteractiveSystem />
</Viewer>
)
Expand Down Expand Up @@ -1142,7 +1132,7 @@ export default function Editor({
})) ?? []

return (
<PresetsProvider adapter={presetsAdapter}>
<>
{showLoader && (
<div className="fixed inset-0 z-60">
<SceneLoader />
Expand Down Expand Up @@ -1196,7 +1186,7 @@ export default function Editor({
<CommandPalette emptyAction={commandPaletteEmptyAction} />
</>
)}
</PresetsProvider>
</>
)
}

Expand All @@ -1207,54 +1197,52 @@ export default function Editor({
const overlayLeft = LAYOUT_PADDING + (isSidebarCollapsed ? 8 : sidebarWidth) + LAYOUT_GAP

return (
<PresetsProvider adapter={presetsAdapter}>
<div className="dark flex h-full w-full gap-3 bg-neutral-100 p-3 text-foreground">
{showLoader && (
<div className="fixed inset-0 z-60">
<SceneLoader />
</div>
)}
<div className="dark flex h-full w-full gap-3 bg-neutral-100 p-3 text-foreground">
{showLoader && (
<div className="fixed inset-0 z-60">
<SceneLoader />
</div>
)}

{!isLoading && isPreviewMode ? (
<>
<ViewerOverlay onBack={() => useEditor.getState().setPreviewMode(false)} />
<div className="h-full w-full">{previewViewerContent}</div>
</>
) : (
<>
{/* Sidebar */}
<SidebarSlot>
<AppSidebar
appMenuButton={appMenuButton}
commandPaletteEmptyAction={commandPaletteEmptyAction}
extraPanels={extraSidebarPanels}
settingsPanelProps={settingsPanelProps}
sidebarTop={sidebarTop}
sitePanelProps={sitePanelProps}
/>
</SidebarSlot>

{/* Viewer area */}
<div className="relative flex-1 overflow-hidden rounded-xl">{viewerCanvas}</div>

{/* Fixed UI overlays scoped to the viewer area */}
<ViewerOverlays left={overlayLeft}>
<div className="pointer-events-auto">
<ActionMenu />
</div>
<div className="pointer-events-auto">
<PanelManager />
</div>
<div className="pointer-events-auto">
<HelperManager />
</div>
{isFirstPersonMode && (
<FirstPersonOverlay onExit={() => useEditor.getState().setFirstPersonMode(false)} />
)}
</ViewerOverlays>
</>
)}
</div>
</PresetsProvider>
{!isLoading && isPreviewMode ? (
<>
<ViewerOverlay onBack={() => useEditor.getState().setPreviewMode(false)} />
<div className="h-full w-full">{previewViewerContent}</div>
</>
) : (
<>
{/* Sidebar */}
<SidebarSlot>
<AppSidebar
appMenuButton={appMenuButton}
commandPaletteEmptyAction={commandPaletteEmptyAction}
extraPanels={extraSidebarPanels}
settingsPanelProps={settingsPanelProps}
sidebarTop={sidebarTop}
sitePanelProps={sitePanelProps}
/>
</SidebarSlot>

{/* Viewer area */}
<div className="relative flex-1 overflow-hidden rounded-xl">{viewerCanvas}</div>

{/* Fixed UI overlays scoped to the viewer area */}
<ViewerOverlays left={overlayLeft}>
<div className="pointer-events-auto">
<ActionMenu />
</div>
<div className="pointer-events-auto">
<PanelManager />
</div>
<div className="pointer-events-auto">
<HelperManager />
</div>
{isFirstPersonMode && (
<FirstPersonOverlay onExit={() => useEditor.getState().setFirstPersonMode(false)} />
)}
</ViewerOverlays>
</>
)}
</div>
)
}
125 changes: 0 additions & 125 deletions packages/editor/src/components/editor/preset-thumbnail-generator.tsx

This file was deleted.

Loading
Loading