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:
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Home Feature Screen Registry
|
||||
* Define all screens in the home feature module
|
||||
*/
|
||||
|
||||
import type { KbxScreenDefinition } from '@shared/contracts/kbx-types'
|
||||
|
||||
export const homeScreen: KbxScreenDefinition = {
|
||||
screenId: 'home.dashboard',
|
||||
title: '홈',
|
||||
module: 'Home',
|
||||
type: 'dashboard',
|
||||
path: '/home',
|
||||
component: () => import('./pages/HomePage.vue'),
|
||||
permissions: [], // Home is accessible to all users
|
||||
description: '업무를 검색하고, 이어서 처리하고, 즐겨찾기로 자주 쓰는 화면에 바로 접근합니다.',
|
||||
telemetry: { enabled: true },
|
||||
}
|
||||
|
||||
export const homeScreens: KbxScreenDefinition[] = [homeScreen]
|
||||
Reference in New Issue
Block a user