Skip to content

Commit daab98b

Browse files
committed
feat: Use gitFederationService to create new universes and update UI state.
1 parent 5d6e650 commit daab98b

1 file changed

Lines changed: 18 additions & 28 deletions

File tree

src/NodeCanvas.jsx

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import { showContextMenu } from './components/GlobalContextMenu';
3232
import * as fileStorage from './store/fileStorage.js';
3333
import * as folderPersistence from './services/folderPersistence.js';
3434
import workspaceService from './services/WorkspaceService.js';
35+
import gitFederationService from './services/gitFederationService.js';
3536
import { pickFolder, getFileInFolder, listFilesInFolder } from './utils/fileAccessAdapter.js';
3637
import AutoGraphModal from './components/AutoGraphModal';
3738
import ForceSimulationModal from './components/ForceSimulationModal';
@@ -13392,52 +13393,41 @@ function NodeCanvas() {
1339213393
try {
1339313394
if (folderPath) {
1339413395
// 1. Link the folder using WorkspaceService
13395-
// If folderPath is a handle object (web), check if we need to persist it differently?
13396-
// WorkspaceService handles storeFolderHandle call.
13397-
// Wait, previous implementation passed path/handle.
1339813396
await workspaceService.linkFolder(folderPath);
1339913397

13400-
// 2. Create Universe file & config using provided name
13401-
// Ensure name is valid
13402-
const safeName = (universeName && universeName.trim()) ? universeName.trim() : "MyUniverse";
13398+
// 2. Create Universe using gitFederationService so it appears in UniversesList
13399+
const safeName = (universeName && universeName.trim()) ? universeName.trim() : "Universe";
1340313400

13404-
const emptyState = {
13405-
graph: {
13406-
id: 'root',
13407-
nodes: new Map(),
13408-
edges: new Map()
13409-
},
13410-
nodePrototypes: new Map(),
13411-
graphRegistry: new Map([['root', { id: 'root', nodes: new Map(), edges: new Map() }]]),
13412-
nodeDefinitionIndices: new Map()
13413-
};
13401+
// This registers the universe with universeBackendBridge
13402+
const result = await gitFederationService.createUniverse(safeName, {
13403+
enableLocal: true,
13404+
enableGit: false,
13405+
sourceOfTruth: 'local'
13406+
});
1341413407

13415-
// Create the file. This creates the file on disk.
13416-
const filename = await workspaceService.createUniverse(safeName, emptyState);
13408+
console.log('[NodeCanvas] Universe created via gitFederationService:', result);
1341713409

13418-
// 4. Load the new universe state into memory
13419-
storeActions.loadUniverseFromFile(emptyState);
13410+
// 3. Update store state
1342013411
storeActions.setStorageMode('folder');
13421-
// Set connected to true, but we are in "file" mode essentially.
1342213412
storeActions.setUniverseConnected(true);
13413+
storeActions.setUniverseLoaded(true, true); // Set hasUniverseFile=true to exit loading screen
13414+
13415+
// 4. Mark onboarding as complete
13416+
if (typeof window !== 'undefined') {
13417+
localStorage.setItem(getStorageKey('redstring-alpha-welcome-seen'), 'true');
13418+
}
1342313419

1342413420
// 5. Close modal and open Panel
1342513421
setShowStorageSetupModal(false);
1342613422
setLeftPanelExpanded(true);
1342713423

13428-
// FORCE REFRESH of file list in Universe Grid (if possible)
13429-
// The Universes Tab (LeftPanel -> SemanticDiscoveryView) likely re-fetches on mount or visibility change.
13430-
// Since we're switching view to 'grid', it *should* re-fetch.
13431-
// But if it's already mounted, we might need a signal.
13432-
// For now, let's rely on view switch.
13433-
1343413424
setTimeout(() => {
1343513425
if (leftPanelRef.current) {
1343613426
leftPanelRef.current.setActiveView('federation');
1343713427
}
1343813428
}, 100);
1343913429

13440-
console.log('[NodeCanvas] Workspace setup complete. Active universe:', filename);
13430+
console.log('[NodeCanvas] Workspace setup complete. Active universe:', safeName);
1344113431
}
1344213432
} catch (error) {
1344313433
console.error('[NodeCanvas] Folder setup failed:', error);

0 commit comments

Comments
 (0)