diff --git a/frontend/src/features/home/pages/HomePage.vue b/frontend/src/features/home/pages/HomePage.vue index 5a34fefc..a677cd29 100644 --- a/frontend/src/features/home/pages/HomePage.vue +++ b/frontend/src/features/home/pages/HomePage.vue @@ -1,7 +1,7 @@ diff --git a/frontend/src/features/home/registry.ts b/frontend/src/features/home/registry.ts new file mode 100644 index 00000000..3c165d9f --- /dev/null +++ b/frontend/src/features/home/registry.ts @@ -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] diff --git a/frontend/src/registry/screens.ts b/frontend/src/registry/screens.ts index c6dd4cc3..84408885 100644 --- a/frontend/src/registry/screens.ts +++ b/frontend/src/registry/screens.ts @@ -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) diff --git a/frontend/src/shared/contracts/kbx-types.ts b/frontend/src/shared/contracts/kbx-types.ts index b8e0d17a..786b202e 100644 --- a/frontend/src/shared/contracts/kbx-types.ts +++ b/frontend/src/shared/contracts/kbx-types.ts @@ -7,7 +7,7 @@ export interface KbxScreenDefinition { screenId: string // e.g., "model-ops.shadow-run.list" title: string // e.g., "Shadow Run Validation" - module: 'ModelOps' | 'SignalEngine' | 'Admin' + module: 'Home' | 'ModelOps' | 'SignalEngine' | 'Admin' | 'Research' | 'Operations' | 'Portfolio' | 'Design System' | 'Internal' | 'Other' type: 'list' | 'detail' | 'form' | 'dashboard' path: string // Vue Router path component: () => Promise // Lazy-loaded component