Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Refactors the Blazor/MAUI UI layer by moving shared (“Tier A”) Razor components into the EventLogExpert.Components library and reorganizing both the library and MAUI head folders/namespaces to align with category-based conventions, updating imports/usings accordingly.
Changes:
- Reorganized component namespaces and
_Imports.razorto match new category folders (Inputs/Filters/Menu/Modals/Sections/Layout/Database). - Lifted/refoldered components and base classes into
EventLogExpert.Components, updating consumers and services to reference new namespaces. - Moved shared extension methods into
EventLogExpert.UIand widened visibility to support cross-assembly usage.
Reviewed changes
Copilot reviewed 62 out of 105 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/EventLogExpert/_Imports.razor | Update usings for new namespaces |
| src/EventLogExpert/Services/MauiMenuActionService.cs | Update modal/filter using directives |
| src/EventLogExpert/MauiProgram.cs | Update alert modal namespace reference |
| src/EventLogExpert/Components/Sections/StatusBar.razor.css | Add isolated styles for StatusBar |
| src/EventLogExpert/Components/Sections/StatusBar.razor.cs | Move StatusBar into Sections namespace |
| src/EventLogExpert/Components/Sections/StatusBar.razor | Add StatusBar markup in new folder |
| src/EventLogExpert/Components/Sections/SplitLogTabPane.razor.css | Add isolated styles for tab pane |
| src/EventLogExpert/Components/Sections/SplitLogTabPane.razor.cs | Move SplitLogTabPane into Sections namespace |
| src/EventLogExpert/Components/Sections/SplitLogTabPane.razor | Add tab pane markup in new folder |
| src/EventLogExpert/Components/Sections/FilterPane.razor.css | Add isolated styles for FilterPane |
| src/EventLogExpert/Components/Sections/FilterPane.razor.cs | Update FilterPane namespace/usings |
| src/EventLogExpert/Components/Sections/FilterPane.razor | Remove old Shared filters using |
| src/EventLogExpert/Components/Sections/EventTable.razor.css | Add isolated styles for EventTable |
| src/EventLogExpert/Components/Sections/EventTable.razor.cs | Move EventTable into Sections namespace |
| src/EventLogExpert/Components/Sections/EventTable.razor | Add EventTable markup in new folder |
| src/EventLogExpert/Components/Sections/DetailsPane.razor.css | Add isolated styles for DetailsPane |
| src/EventLogExpert/Components/Sections/DetailsPane.razor.cs | Move DetailsPane into Sections namespace |
| src/EventLogExpert/Components/Sections/DetailsPane.razor | Add DetailsPane markup in new folder |
| src/EventLogExpert/Components/Modals/SettingsModal.razor.css | Add isolated styles for SettingsModal |
| src/EventLogExpert/Components/Modals/SettingsModal.razor.cs | Update SettingsModal base/namespace |
| src/EventLogExpert/Components/Modals/SettingsModal.razor | Remove old Shared base using |
| src/EventLogExpert/Components/Modals/Filters/FilterGroupSection.razor.cs | Update FilterGroupSection namespace |
| src/EventLogExpert/Components/Modals/Filters/FilterGroupSection.razor | Add FilterGroupSection markup |
| src/EventLogExpert/Components/Modals/Filters/FilterGroupModal.razor.cs | Update FilterGroupModal base/namespace |
| src/EventLogExpert/Components/Modals/Filters/FilterGroupModal.razor | Remove old Shared base using |
| src/EventLogExpert/Components/Modals/Filters/FilterGroup.razor.cs | Update FilterGroup namespace |
| src/EventLogExpert/Components/Modals/Filters/FilterGroup.razor | Add FilterGroup markup |
| src/EventLogExpert/Components/Modals/Filters/FilterCacheModal.razor.css | Add isolated styles for FilterCacheModal |
| src/EventLogExpert/Components/Modals/Filters/FilterCacheModal.razor.cs | Update FilterCacheModal base/namespace |
| src/EventLogExpert/Components/Modals/Filters/FilterCacheModal.razor | Remove old Shared base using |
| src/EventLogExpert/Components/Layout/UnhandledExceptionHandler.razor.cs | Move handler into Layout namespace |
| src/EventLogExpert/Components/Layout/UnhandledExceptionHandler.razor | Add handler markup in new folder |
| src/EventLogExpert/Components/Layout/MainLayout.razor.css | Add skip-link styling |
| src/EventLogExpert/Components/Layout/MainLayout.razor.cs | Move MainLayout into Layout namespace |
| src/EventLogExpert/Components/Layout/MainLayout.razor | Remove old Shared usings |
| src/EventLogExpert.UI/ExtensionMethods.cs | Move/widen extensions for reuse |
| src/EventLogExpert.Components/_Imports.razor | Add library-level component usings |
| src/EventLogExpert.Components/Modals/ReleaseNotesModal.razor.css | Add isolated styles for ReleaseNotesModal |
| src/EventLogExpert.Components/Modals/ReleaseNotesModal.razor.cs | Update ReleaseNotesModal base/namespace |
| src/EventLogExpert.Components/Modals/ReleaseNotesModal.razor | Remove old Shared base using |
| src/EventLogExpert.Components/Modals/ModalHost.razor.cs | Move ModalHost into Modals namespace |
| src/EventLogExpert.Components/Modals/ModalHost.razor | Add ModalHost markup |
| src/EventLogExpert.Components/Modals/DebugLogModal.razor.cs | Update DebugLogModal base/namespace |
| src/EventLogExpert.Components/Modals/DebugLogModal.razor | Remove old Shared base using |
| src/EventLogExpert.Components/Modals/Alerts/PromptModal.razor.css | Add isolated styles for PromptModal |
| src/EventLogExpert.Components/Modals/Alerts/PromptModal.razor.cs | Move PromptModal into Modals.Alerts |
| src/EventLogExpert.Components/Modals/Alerts/PromptModal.razor | Remove old Shared base using |
| src/EventLogExpert.Components/Modals/Alerts/AlertModal.razor.css | Add isolated styles for AlertModal |
| src/EventLogExpert.Components/Modals/Alerts/AlertModal.razor.cs | Move AlertModal into Modals.Alerts |
| src/EventLogExpert.Components/Modals/Alerts/AlertModal.razor | Remove old Shared base using |
| src/EventLogExpert.Components/Menu/MenuRenderer.razor.css | Add isolated styles for MenuRenderer |
| src/EventLogExpert.Components/Menu/MenuRenderer.razor.cs | Move MenuRenderer into Menu namespace |
| src/EventLogExpert.Components/Menu/MenuRenderer.razor | Add MenuRenderer markup |
| src/EventLogExpert.Components/Menu/MenuHost.razor.css | Add isolated styles for MenuHost |
| src/EventLogExpert.Components/Menu/MenuHost.razor.cs | Move MenuHost into Menu namespace |
| src/EventLogExpert.Components/Menu/MenuHost.razor | Add MenuHost markup |
| src/EventLogExpert.Components/Menu/MenuBar.razor.css | Add isolated styles for MenuBar |
| src/EventLogExpert.Components/Menu/MenuBar.razor.cs | Move MenuBar into Menu namespace |
| src/EventLogExpert.Components/Menu/MenuBar.razor | Add MenuBar markup |
| src/EventLogExpert.Components/Inputs/ValueSelectItem.razor.css | Add isolated styles for ValueSelectItem |
| src/EventLogExpert.Components/Inputs/ValueSelectItem.razor.cs | Move ValueSelectItem into Inputs namespace |
| src/EventLogExpert.Components/Inputs/ValueSelectItem.razor | Add ValueSelectItem markup |
| src/EventLogExpert.Components/Inputs/ValueSelect.razor.css | Add isolated styles for ValueSelect |
| src/EventLogExpert.Components/Inputs/ValueSelect.razor.cs | Move ValueSelect into Inputs namespace |
| src/EventLogExpert.Components/Inputs/ValueSelect.razor | Add ValueSelect markup |
| src/EventLogExpert.Components/Inputs/TextInput.razor.cs | Move TextInput into Inputs namespace |
| src/EventLogExpert.Components/Inputs/TextInput.razor | Add TextInput markup |
| src/EventLogExpert.Components/Inputs/BooleanSelect.razor.css | Add isolated styles for BooleanSelect |
| src/EventLogExpert.Components/Inputs/BooleanSelect.razor.cs | Move BooleanSelect into Inputs namespace |
| src/EventLogExpert.Components/Inputs/BooleanSelect.razor | Add BooleanSelect markup |
| src/EventLogExpert.Components/Filters/SubFilterRow.razor.cs | Move SubFilterRow + base namespace update |
| src/EventLogExpert.Components/Filters/SubFilterRow.razor | Remove old Shared base using |
| src/EventLogExpert.Components/Filters/FilterRowChrome.razor.css | Add isolated styles for FilterRowChrome |
| src/EventLogExpert.Components/Filters/FilterRowChrome.razor.cs | Move FilterRowChrome into Filters namespace |
| src/EventLogExpert.Components/Filters/FilterRowChrome.razor | Add FilterRowChrome markup |
| src/EventLogExpert.Components/Filters/FilterRow.razor.cs | Move FilterRow + base namespace update |
| src/EventLogExpert.Components/Filters/FilterRow.razor | Remove old Shared base using |
| src/EventLogExpert.Components/Filters/FilterGroupRow.razor.css | Add isolated styles for FilterGroupRow |
| src/EventLogExpert.Components/Filters/FilterGroupRow.razor.cs | Move FilterGroupRow + base namespace update |
| src/EventLogExpert.Components/Filters/FilterGroupRow.razor | Remove old Shared base using |
| src/EventLogExpert.Components/Filters/FilterCategoryEditor.razor.cs | Move FilterCategoryEditor into Filters namespace |
| src/EventLogExpert.Components/Filters/FilterCategoryEditor.razor | Add FilterCategoryEditor markup |
| src/EventLogExpert.Components/Filters/FilterCacheRow.razor.css | Add isolated styles for FilterCacheRow |
| src/EventLogExpert.Components/Filters/FilterCacheRow.razor.cs | Move FilterCacheRow + base namespace update |
| src/EventLogExpert.Components/Filters/FilterCacheRow.razor | Remove old Shared base using |
| src/EventLogExpert.Components/Filters/Base/FilterRowBase.cs | Move FilterRowBase into Filters.Base |
| src/EventLogExpert.Components/Filters/Base/EditableFilterRowBase.cs | Move EditableFilterRowBase into Filters.Base |
| src/EventLogExpert.Components/Filters/AdvancedFilterRow.razor.cs | Move AdvancedFilterRow + base namespace update |
| src/EventLogExpert.Components/Filters/AdvancedFilterRow.razor | Remove old Shared base using |
| src/EventLogExpert.Components/Database/SettingsUpgradeProgressBanner.razor.css | Add isolated styles for progress banner |
| src/EventLogExpert.Components/Database/SettingsUpgradeProgressBanner.razor.cs | Move banner into Database namespace |
| src/EventLogExpert.Components/Database/SettingsUpgradeProgressBanner.razor | Remove explicit @namespace directive |
| src/EventLogExpert.Components/Database/DatabaseRecoveryHost.razor.cs | Move recovery host into Database namespace |
| src/EventLogExpert.Components/Database/DatabaseRecoveryHost.razor | Add recovery host markup |
| src/EventLogExpert.Components/Database/DatabaseRecoveryDialog.razor.css | Add isolated styles for recovery dialog |
| src/EventLogExpert.Components/Database/DatabaseRecoveryDialog.razor.cs | Move recovery dialog into Database namespace |
| src/EventLogExpert.Components/Database/DatabaseRecoveryDialog.razor | Add recovery dialog markup |
| src/EventLogExpert.Components/Database/DatabaseEntryRow.razor.css | Add isolated styles for database entry row |
| src/EventLogExpert.Components/Database/DatabaseEntryRow.razor.cs | Move entry row into Database namespace |
| src/EventLogExpert.Components/Database/DatabaseEntryRow.razor | Add entry row markup |
| src/EventLogExpert.Components/Base/ModalBase.cs | Move ModalBase into Components.Base and widen method access |
| src/EventLogExpert.Components.Tests/Database/SettingsUpgradeProgressBannerTests.cs | Update test namespace/usings for Database components |
| src/EventLogExpert.Components.Tests/Database/DatabaseRecoveryHostTests.cs | Update test namespace/usings for Database components |
| src/EventLogExpert.Components.Tests/Database/DatabaseRecoveryDialogTests.cs | Update test namespace/usings for Database components |
| src/EventLogExpert.Components.Tests/Database/DatabaseEntryRowTests.cs | Update test namespace/usings for Database components |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
2958101 to
c145edc
Compare
d4c1edc to
f90a81d
Compare
bill-long
approved these changes
May 4, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 62 out of 105 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PR1 of a 3-PR sequence. Pure refactor — zero behavior changes. Lifts shareable components into the library and reorganizes both projects by category for Blazor convention alignment.
Changes
Lifted 18 Tier A components + 3 base classes from MAUI head into EventLogExpert.Components library, organized by category:
Inputs/— TextInput, ValueSelect, ValueSelectItem (BooleanSelect already there)Modals/— ModalHost, DebugLogModal, ReleaseNotesModalModals/Alerts/— AlertModal, PromptModalFilters/— FilterRow, AdvancedFilterRow, FilterCacheRow, FilterCategoryEditor, FilterGroupRow, FilterRowChrome, SubFilterRowFilters/Base/— FilterRowBase, EditableFilterRowBaseMenu/— MenuBar, MenuHost, MenuRendererBase/— ModalBaseReorganized library existing files into
Database/.Restructured MAUI head per Blazor convention; deleted
Shared/:Components/Layout/— MainLayout, UnhandledExceptionHandlerComponents/Sections/— EventTable, DetailsPane, FilterPane, SplitLogTabPane, StatusBarComponents/Modals/— SettingsModal (Tier B, lifts in PR2)Components/Modals/Filters/— FilterCacheModal, FilterGroup, FilterGroupModal, FilterGroupSection (Tier B, lift in PR2)Moved
ExtensionMethods.csfrom MAUI head toEventLogExpert.UIso lifted components can reach the extensions.Updated all consumers —
_Imports.razor(both projects),MauiProgram.cs,MauiMenuActionService.cs,Main.razor,MainLayout.razor,FilterPane.razor[.cs].Tier B (deferred to PR2)
5 modals stay in the head this PR because they have
Microsoft.Maui.Storage.FilePicker/Windows.Storage.Pickersdependencies: SettingsModal, FilterCacheModal, FilterGroup, FilterGroupModal, FilterGroupSection. They were re-foldered toComponents/Modals/[Filters/]so PR2 can lift them by simply moving the folder and re-pointing namespaces.Verification
dotnet build src/EventLogExpert.slnx— 0 warnings, 0 errorsdotnet test— all 1,765 tests pass (Components 113 / EventDbTool 19 / Eventing 628 / UI 1,005)git mv— history preserved (rename similarity 80–100%)EventLogExpert.Shared.*references: 0 matches