Skip to content

Commit 2db9eca

Browse files
Fix dreamnode-editor bugs: wrong image, search display, self-toggle
- Reset previewMedia when switching to different node in editor - Set spatialLayout to 'edit-search' when toggling relationship search - Prevent clicking center node from adding self-relationship 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 1ecaf91 commit 2db9eca

3 files changed

Lines changed: 19 additions & 2 deletions

File tree

src/core/components/DreamspaceCanvas.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,12 @@ export default function DreamspaceCanvas() {
328328

329329
// Handle edit mode relationship toggling
330330
if (store.editMode.isActive && store.editMode.editingNode) {
331+
// IMPORTANT: Prevent clicking the center editing node itself
332+
if (store.editMode.editingNode.id === node.id) {
333+
console.log(`Edit mode: Cannot toggle relationship with self (center node: ${node.name})`);
334+
return;
335+
}
336+
331337
// In edit mode, clicking a node toggles its relationship status
332338
store.togglePendingRelationship(node.id);
333339
console.log(`Edit mode: Toggled relationship with "${node.name}"`);

src/features/dreamnode-editor/DreamNodeEditor3D.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ export default function DreamNodeEditor3D() {
3939
setEditModeValidationErrors,
4040
setEditModeSearchActive,
4141
setEditModeSearchResults,
42-
exitEditMode
42+
exitEditMode,
43+
setSpatialLayout
4344
} = useInterBrainStore();
4445

4546
const { editingNode, validationErrors, newDreamTalkFile } = editMode;
@@ -99,6 +100,12 @@ export default function DreamNodeEditor3D() {
99100
}
100101
}, [editingNode?.id]);
101102

103+
// Reset previewMedia when editing a different node
104+
useEffect(() => {
105+
// Clear preview when switching to a different node
106+
setPreviewMedia(null);
107+
}, [editingNode?.id]);
108+
102109
// Handle pre-filled dreamTalkMedia
103110
useEffect(() => {
104111
if (newDreamTalkFile && !previewMedia) {
@@ -285,6 +292,7 @@ export default function DreamNodeEditor3D() {
285292
if (editMode.isSearchingRelationships) {
286293
// Turning OFF - show pending relationships only
287294
setEditModeSearchActive(false);
295+
setSpatialLayout('edit'); // Return to edit mode layout
288296

289297
const pendingRelationshipIds = editMode.pendingRelationships;
290298
if (pendingRelationshipIds.length > 0 && editingNode) {
@@ -305,8 +313,9 @@ export default function DreamNodeEditor3D() {
305313
setEditModeSearchResults([]);
306314
}
307315
} else {
308-
// Turning ON
316+
// Turning ON - switch to edit-search layout
309317
setEditModeSearchActive(true);
318+
setSpatialLayout('edit-search');
310319
}
311320
};
312321

src/features/dreamnode-editor/commands.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ export function registerEditModeCommands(plugin: Plugin, uiService: UIService):
161161
store.setEditModeSearchResults(searchResults.map(result => result.node));
162162
store.setSearchResults(searchResults.map(result => result.node));
163163
store.setEditModeSearchActive(true);
164+
store.setSpatialLayout('edit-search');
164165

165166
uiService.hideProgress();
166167

@@ -278,6 +279,7 @@ export function registerEditModeCommands(plugin: Plugin, uiService: UIService):
278279
store.setEditModeSearchResults(searchResults.map(result => result.node));
279280
store.setSearchResults(searchResults.map(result => result.node));
280281
store.setEditModeSearchActive(true);
282+
store.setSpatialLayout('edit-search');
281283

282284
uiService.hideProgress();
283285

0 commit comments

Comments
 (0)