Skip to content

Tier 2: Property/event gaps + health detection fixes (6 components to 100%)#483

Merged
csharpfritz merged 5 commits intoFritzAndFriends:devfrom
csharpfritz:feature/tier2-property-event-gaps
Mar 19, 2026
Merged

Tier 2: Property/event gaps + health detection fixes (6 components to 100%)#483
csharpfritz merged 5 commits intoFritzAndFriends:devfrom
csharpfritz:feature/tier2-property-event-gaps

Conversation

@csharpfritz
Copy link
Collaborator

@csharpfritz csharpfritz commented Mar 19, 2026

Summary

Raises 6 components from sub-100% to 100% health, bringing the dashboard from 44 to 50/59 at 100%. Includes documentation, sample pages, and integration tests for all new features.

Health Detection Fixes

Component Before After Fix
ValidationSummary 70% 100% Type alias fix
FileUpload 88% 100% Baseline correction
CustomValidator 85% 100% ServerValidate as Func

Component Property/Event Additions

Component Before After Added
TreeView 88.3% 100% 9 properties: image URLs, tooltips, config
BulletedList 90% 100% 4 properties + 3 events
SiteMapPath 85% 100% 2 events + SiteMapNodeItemEventArgs
CustomValidator - - ClientValidationFunction, IsValid

Documentation, Samples, and Integration Tests

Docs: TreeView.md, BulletedList.md, SiteMapPath.md, CustomValidator.md

Samples: TreeView/ImageAndConfig, BulletedList/Selection, SiteMapPath/Events, CustomValidator

Tests: 3 new integration test entries, 22 new bUnit tests, 2470 total pass

csharpfritz and others added 5 commits March 19, 2026 11:11
Health detection:
- Add TypeAliases mapping in ComponentHealthService for components
  whose class name differs from the tracked name (AspNetValidationSummary)
- Fix reference baselines: FileUpload read-only props, TreeView DataSourceID
  on stop type, CustomValidator ServerValidate as Func not EventCallback

Component property/event additions:
- TreeView: 9 new properties (image URLs, tooltips, config stubs)
- BulletedList: 4 properties + 3 events (Click alias, SelectedIndexChanged,
  TextChanged, AutoPostBack, SelectedIndex, SelectedValue, Text)
- SiteMapPath: 2 events (ItemCreated, ItemDataBound) + SiteMapNodeItemEventArgs
- CustomValidator: 2 properties (ClientValidationFunction, IsValid)

Fix existing AutoGenerateDataBindings="False"  "false" in sample + test

Health: 6 components raised to 100% (44  50/59)
Tests: 2,470 pass (22 new)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
New sample pages:
- TreeView/ImageAndConfig: CollapseImageUrl, ExpandImageUrl, tooltips,
  MaxDataBindDepth, AutoGenerateDataBindings, EnableClientScript
- BulletedList/Selection: Click alias, SelectedIndex, SelectedValue,
  AutoPostBack, Text, SelectedIndexChanged, TextChanged
- SiteMapPath/Events: ItemCreated and ItemDataBound events

Updated sample:
- CustomValidator: ClientValidationFunction and IsValid properties

Documentation updates:
- TreeView.md: Image Customization and Data Binding Config references
- BulletedList.md: Selection properties, Click alias, events
- SiteMapPath.md: Events section, removed ItemDataBound from NOT Supported
- CustomValidator.md: Full documentation (was _TODO_)

Integration tests:
- Added 3 new InlineData entries for new sample pages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add SubPages entries to ComponentCatalog.cs so the sample app
navigation links to the new pages:
- BulletedList: added "Selection" sub-page
- SiteMapPath: added "Events" sub-page
- TreeView: added "ImageAndConfig" sub-page (alphabetical order)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Click alias demo remains interactive with clear CTA
- New OnClick+SelectedIndex tracking demo shows functional selection
- Migration stub section clearly labeled as markup compatibility only
- Removed misleading SelectedIndexChanged/TextChanged interactive demos
- Updated docs to clarify stubs are accepted but not fired

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Events now fire during OnParametersSetAsync when navigation path changes
- Uses URL change tracking to prevent re-render loops
- ItemCreated fires for each node after path is built
- ItemDataBound fires for each node after ItemCreated
- All 2,470 bUnit tests pass
- All 243 integration tests pass (including SiteMapPath/Events)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@csharpfritz csharpfritz merged commit 84c1d95 into FritzAndFriends:dev Mar 19, 2026
4 checks passed
@csharpfritz csharpfritz deleted the feature/tier2-property-event-gaps branch March 19, 2026 16:44
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