FeatureTable support and serialization bug fixes#512
FeatureTable support and serialization bug fixes#512
Conversation
|
Claude finished @TimPurdum's task —— View job PR Review AnalysisTodo List:
Issues Found:1. Null Reference Exception in Widget Parameter ComparisonFile: The code assumes Type paramType = previousValue!.GetType(); // Line 430
if (paramType.IsArray)
{
Array prevArray = (Array)previousValue;
Array currArray = (Array)kvp.Value!; // Potential null referenceIf Fix: Add null checks for 2. Incomplete Loop Control in Parameter ComparisonFile: The nested loops for array and collection comparison have Expected behavior: When any difference is found, should break the outer loop and trigger widget update. 3. Exception Handling in DomUiEventConverterFile: The converter creates a clone of the JsonReader but doesn't properly handle exceptions during deserialization. If any of the Recommendation: Add try-catch blocks around the deserialization attempts with more specific error handling. 4. Type Inconsistency in Sublayer ImplementationFile: All other layer types return Fix: Should return |
Summary
IFeatureTableWidgetLayerstoIFeatureTableWidgetLayer(singular) and addedFeatureTableLayerTypeproperty to the interface. Implemented the interface onCSVLayer,FeatureLayer,GeoJSONLayer,ImageryLayer,WFSLayer, andSublayer, enabling these layer types to work with the ProFeatureTableWidget.Widget.razor.cswhere parameter change detection (SetParametersAsync) did not correctly compare arrays or generic collections. Previously, re-renders could be triggered incorrectly (or missed) for collection-typed parameters. The fix adds proper element-wise comparison for arrays andICollectiontypes, and also guardsUpdateWidgetcalls behindMapRenderedchecks.SizeVariableConverterto excludeParent,View, andLayernavigation properties during JSON serialization, preventing circular reference errors.DomUiEventConverterJSON converter for theIDomUiEventinterface, enabling polymorphic deserialization intoDomPointerEvent,DomMouseEvent, orDomKeyboardEventbased on the properties present in the JSON payload.site.csswith consistent indentation, added:not(.esri-feature-table)exclusion to.esri-widgetcolor reset to avoid style conflicts with the FeatureTable widget, and added Calcite design token variables for text and foreground colors.Test plan
🤖 Generated with Claude Code