From cd5f64765994fdd0647281ec3955ca856109458d Mon Sep 17 00:00:00 2001 From: Tara West Date: Thu, 15 Jan 2026 10:48:52 +0100 Subject: [PATCH] feat(element-configs): Initialize configs at app startup - Added initElementConfigs() function in ElementConfigs/index.ts - Calls registry.register() for ButtonConfig and TextConfig - Integrated into Router constructor (called after LessonTemplatesModel init) - Configs now load when editor starts - Console log shows '[ ElementConfigs] Initialized with X configs' Part of STYLE-002 MVP 2 implementation. Next: Hook into node creation to auto-apply defaults. --- .../editor/src/models/ElementConfigs/index.ts | 23 +++++++++++++++++-- .../noodl-editor/src/editor/src/router.tsx | 4 ++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/packages/noodl-editor/src/editor/src/models/ElementConfigs/index.ts b/packages/noodl-editor/src/editor/src/models/ElementConfigs/index.ts index 21557b8..27a5c9d 100644 --- a/packages/noodl-editor/src/editor/src/models/ElementConfigs/index.ts +++ b/packages/noodl-editor/src/editor/src/models/ElementConfigs/index.ts @@ -14,5 +14,24 @@ export * from './ElementConfigTypes'; // Export registry export { ElementConfigRegistry, registry } from './ElementConfigRegistry'; -// Configs will be exported once implemented -// export * from './configs'; +// Export configs +export * from './configs'; + +/** + * Initialize Element Configs + * + * Registers all built-in element configurations. + * Should be called once at application startup. + */ +export function initElementConfigs(): void { + // Import configs and register them + import('./configs').then(({ ButtonConfig, TextConfig }) => { + // Import registry from local module + import('./ElementConfigRegistry').then(({ ElementConfigRegistry }) => { + ElementConfigRegistry.instance.register(ButtonConfig); + ElementConfigRegistry.instance.register(TextConfig); + + console.log('[ElementConfigs] Initialized with', ElementConfigRegistry.instance.getCount(), 'configs'); + }); + }); +} diff --git a/packages/noodl-editor/src/editor/src/router.tsx b/packages/noodl-editor/src/editor/src/router.tsx index bb46079..226f898 100644 --- a/packages/noodl-editor/src/editor/src/router.tsx +++ b/packages/noodl-editor/src/editor/src/router.tsx @@ -10,6 +10,7 @@ import './utils/editorapi'; import { platform } from '@noodl/platform'; import { AiAssistantModel } from '@noodl-models/AiAssistant'; +import { initElementConfigs } from '@noodl-models/ElementConfigs'; import { ProjectModel } from '@noodl-models/projectmodel'; import { AppRoute } from './pages/AppRoute'; @@ -108,6 +109,9 @@ export default class Router // Initialise models LessonTemplatesModel.instance.fetch(); + // Initialize element configs (Button, Text, etc.) + initElementConfigs(); + EventDispatcher.instance.on( 'viewer-refresh', () => {