-
Notifications
You must be signed in to change notification settings - Fork 1
Labels
approvedChange issue has been accepted for implementationChange issue has been accepted for implementationenhancementNew feature or requestNew feature or request
Description
Task Description
Enhance the application’s dependency injection setup and MainViewModel logic to support dynamic discovery and navigation of plugin-contributed pages, as well as seamless integration of the consolidated settings hub (including the plugin manager). This will ensure that:
- Plugin pages are correctly injected, registered, and displayed in the navigation menu at runtime.
- The
SettingsViewandSettingsPluginsVieware permanently available in navigation as part of the settings hub. - Navigation actions seamlessly switch between plugin pages and the settings hub without errors or conflicts.
The outcome is a consistent and extensible navigation system that dynamically adapts to plugins and always provides a unified settings hub entry.
Acceptance Criteria
- Dependency injection registers
SettingsView,SettingsViewModel,SettingsPluginsView, andSettingsPluginsViewModelwith the service provider. -
MainViewModelmaintains a dynamic collection (MainPageItems) that includes both core app pages and plugin-contributed pages at runtime. - A permanent "Settings" entry exists in the navigation that opens the consolidated settings hub (with plugin manager included).
- Selecting any plugin page updates the displayed main content to the correct view and viewmodel.
- Navigation gracefully handles missing or invalid plugin pages without breaking the app.
Steps to Complete
- Update
App.axaml.csto registerSettingsViewandSettingsViewModelin the DI container. - Update
Bootstrapperto registerSettingsPluginsViewandSettingsPluginsViewModel. - Extend
MainViewModelto maintain a permanent settings entry and support dynamic injection of plugin-provided pages. - Implement navigation logic to switch to the settings hub when "Settings" is selected.
- Ensure plugin page descriptors are properly resolved, instantiated, and added to the navigation menu.
Stakeholders / Reviewers
- PlugHub Core Engineering Team
- Plugin Developers
- End Users
Dependencies / Blockers
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
approvedChange issue has been accepted for implementationChange issue has been accepted for implementationenhancementNew feature or requestNew feature or request
Type
Projects
Status
Done