@@ -138,22 +138,37 @@ const EntryInfoRow: React.FC<EntryInfoRowProps> = ({
138138 const field = fields [ fieldIdx ] ;
139139 const fieldValueAccessor = layer . accessVSFieldValue ( field , currentTime ) ;
140140 const value = fieldValueAccessor ( field , data instanceof DataRow ? { index : data . _rowIndex } : data ) ;
141- const primaryValue = primaryData
142- ? fieldValueAccessor (
143- field ,
144- primaryData instanceof DataRow ? { index : primaryData . _rowIndex } : primaryData
145- )
146- : null ;
147- const displayValue = getTooltipDisplayValue ( { item, field, value} ) ;
148141
149- const displayDeltaValue = primaryData
150- ? getTooltipDisplayDeltaValue ( {
151- field,
152- value,
153- primaryValue,
154- compareType
155- } )
156- : null ;
142+ // Handle WMS layer data in comparison mode - WMS layers don't have comparable field data
143+ let primaryValue = null ;
144+ let displayDeltaValue : string | null = null ;
145+
146+ if ( primaryData ) {
147+ try {
148+ // Only calculate primary value if primaryData has a compatible structure
149+ if (
150+ primaryData instanceof DataRow ||
151+ ( primaryData && typeof primaryData === 'object' && 'index' in primaryData )
152+ ) {
153+ primaryValue = fieldValueAccessor (
154+ field ,
155+ primaryData instanceof DataRow ? { index : primaryData . _rowIndex } : primaryData
156+ ) ;
157+
158+ displayDeltaValue = getTooltipDisplayDeltaValue ( {
159+ field,
160+ value,
161+ primaryValue,
162+ compareType
163+ } ) ;
164+ }
165+ } catch ( error ) {
166+ // If there's an error accessing primaryData (e.g., WMS layer data), skip comparison
167+ primaryValue = null ;
168+ }
169+ }
170+
171+ const displayValue = getTooltipDisplayValue ( { item, field, value} ) ;
157172
158173 return (
159174 < Row
@@ -236,6 +251,7 @@ const LayerHoverInfoFactory = () => {
236251
237252 const hasFieldsToShow =
238253 ( data . fieldValues && Object . keys ( data . fieldValues ) . length > 0 ) ||
254+ ( data . wmsFeatureData && data . wmsFeatureData . length > 0 ) ||
239255 ( props . fieldsToShow && props . fieldsToShow . length > 0 ) ;
240256
241257 return (
@@ -246,7 +262,13 @@ const LayerHoverInfoFactory = () => {
246262 </ StyledLayerName >
247263 { hasFieldsToShow && < StyledDivider /> }
248264 < StyledTable >
249- { data . fieldValues ? (
265+ { data . wmsFeatureData ? (
266+ < tbody >
267+ { data . wmsFeatureData . map ( ( { name, value} , i ) => (
268+ < Row key = { i } name = { name } value = { value } />
269+ ) ) }
270+ </ tbody >
271+ ) : data . fieldValues ? (
250272 < tbody >
251273 { data . fieldValues . map ( ( { labelMessage, value} , i ) => (
252274 < Row key = { i } name = { intl . formatMessage ( { id : labelMessage } ) } value = { value } />
0 commit comments