feat: proper sidebar and import persistence

This commit is contained in:
2026-02-13 14:09:54 +01:00
parent d88fb1d9fa
commit 9169f2a34c
16 changed files with 922 additions and 50 deletions

View File

@@ -807,6 +807,63 @@ export function registerIpcHandlers(): void {
return result.filePaths[0];
});
// ============ Import Definition CRUD Handlers ============
safeHandle('importDefinitions:create', async (_, name?: string) => {
const { ImportDefinitionEngine } = await import('../engine/ImportDefinitionEngine');
const engine = new ImportDefinitionEngine();
const projectEngine = getProjectEngine();
const activeProject = await projectEngine.getActiveProject();
if (activeProject) {
engine.setProjectContext(activeProject.id);
}
return engine.createDefinition(name || undefined);
});
safeHandle('importDefinitions:get', async (_, id: string) => {
const { ImportDefinitionEngine } = await import('../engine/ImportDefinitionEngine');
const engine = new ImportDefinitionEngine();
const projectEngine = getProjectEngine();
const activeProject = await projectEngine.getActiveProject();
if (activeProject) {
engine.setProjectContext(activeProject.id);
}
return engine.getDefinition(id);
});
safeHandle('importDefinitions:getAll', async () => {
const { ImportDefinitionEngine } = await import('../engine/ImportDefinitionEngine');
const engine = new ImportDefinitionEngine();
const projectEngine = getProjectEngine();
const activeProject = await projectEngine.getActiveProject();
if (activeProject) {
engine.setProjectContext(activeProject.id);
}
return engine.getAllForProject();
});
safeHandle('importDefinitions:update', async (_, id: string, updates: any) => {
const { ImportDefinitionEngine } = await import('../engine/ImportDefinitionEngine');
const engine = new ImportDefinitionEngine();
const projectEngine = getProjectEngine();
const activeProject = await projectEngine.getActiveProject();
if (activeProject) {
engine.setProjectContext(activeProject.id);
}
return engine.updateDefinition(id, updates);
});
safeHandle('importDefinitions:delete', async (_, id: string) => {
const { ImportDefinitionEngine } = await import('../engine/ImportDefinitionEngine');
const engine = new ImportDefinitionEngine();
const projectEngine = getProjectEngine();
const activeProject = await projectEngine.getActiveProject();
if (activeProject) {
engine.setProjectContext(activeProject.id);
}
return engine.deleteDefinition(id);
});
// ============ Event Forwarding ============
// Forward engine events to renderer