Skip to content

[PASO 2.3] Add NavigationService, BreadcrumbService and provideNavigation#17

Merged
mfg1986 merged 3 commits into
developfrom
feature/PASO-2.3_navigation-service
Apr 30, 2026
Merged

[PASO 2.3] Add NavigationService, BreadcrumbService and provideNavigation#17
mfg1986 merged 3 commits into
developfrom
feature/PASO-2.3_navigation-service

Conversation

@mfg1986
Copy link
Copy Markdown
Contributor

@mfg1986 mfg1986 commented Apr 30, 2026

Summary

  • Add NavigationService with generic recursive NavItem architecture — configure(), registerItem(), unregisterItem(), navItems (computed with recursive permission filtering), activeRoute (via toSignal())
  • Add BreadcrumbService — breadcrumbs computed from ActivatedRoute data via toSignal()
  • Add provideNavigation(config) provider factory with synchronous APP_INITIALIZER
  • Add barrel exports and bump @fireflyframework/core to 0.3.0

Architecture decisions

  • No NavGroup — the framework exposes only recursive NavItem. Products decide how to interpret the tree (flat, grouped sidebar, nested menu, etc.)
  • Items without route act as containers/headers — removed when all children are filtered out by permissions
  • SRP: NavigationService (nav state) separate from BreadcrumbService (breadcrumbs)

Test plan

  • CI passes (3 jobs: ci, template, showcase)
  • Logs are clean (no unexpected warnings/errors)
  • All items checked above

mfg1986 added 3 commits April 30, 2026 16:31
…t tests

Create navigation module with generic recursive NavItem architecture:
- NavItem with optional route and recursive children (no NavGroup)
- NavigationService: configure, registerItem, unregisterItem, navItems
  with recursive permission filtering, activeRoute via toSignal()
- BreadcrumbService: breadcrumbs computed from ActivatedRoute data
- 20 unit tests (15 NavigationService + 5 BreadcrumbService)
Create provider factory following provideMasterData pattern:
- InjectionToken for NavigationConfig injection
- Synchronous APP_INITIALIZER that calls configure()
- 3 unit tests (valid providers, init configures service, empty items)
…0.3.0

- Create navigation/index.ts barrel with all public exports
- Re-export navigation module from root src/index.ts
- Version bump 0.2.0 → 0.3.0 (minor: new module)
@mfg1986 mfg1986 merged commit 7b37594 into develop Apr 30, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant