feat: apply KBX Foundation v4 pattern to home navigation
1. Create home feature registry (registry.ts) - Define homeScreen: KbxScreenDefinition - screenId: "home.dashboard" - Module: "Home" - Type: "dashboard" - Accessible to all users (no permissions required) 2. Update central registry (registry/screens.ts) - Import homeScreens from home/registry - Add homeScreens to getAllScreens() - Prepare for dynamic screen loading 3. Refactor HomePage.vue (KBX pattern) - Replace navigationCatalog with registry-driven screens - Use useKbxRegistry() composable - Dynamic module grouping from registry - Favorites/recent workbench - Attention items aggregation (DEBT-030) 4. Extend module types (kbx-types.ts) - Add "Home" to module union type - Support existing modules: Research, Operations, Portfolio, etc. - Flexible module extensibility Features: - Registry-driven navigation - Centralized screen definitions - Dynamic module grouping and sorting - Favorites/recent screen tracking - Type-safe screen lookups - Zero hardcoded navigation paths Benefits: - Single source of truth for screen registry - Automatic sync with router definitions - Easy to add new modules - Maintainable and testable TypeScript: ✅ PASS (0 errors) Typecheck time: ~5s Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,9 +4,9 @@
|
||||
*/
|
||||
|
||||
import type { KbxScreenDefinition } from '@shared/contracts/kbx-types'
|
||||
import { homeScreens } from '@features/home/registry'
|
||||
|
||||
// Import screen definitions from each feature module
|
||||
// (these will be created in Task 4)
|
||||
// import { shadowRunScreens } from '@features/shadow-run/registry'
|
||||
// import { modelScreens } from '@features/models/registry'
|
||||
|
||||
@@ -61,7 +61,8 @@ export const exampleScreens: KbxScreenDefinition[] = [
|
||||
export function getAllScreens(): KbxScreenDefinition[] {
|
||||
const screens: KbxScreenDefinition[] = []
|
||||
|
||||
// Add screens from all modules (to be populated as features are created)
|
||||
// Add screens from all modules
|
||||
screens.push(...homeScreens)
|
||||
// screens.push(...shadowRunScreens)
|
||||
// screens.push(...modelScreens)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user