@@ -24,6 +24,7 @@ import styles from './KeyValue.css';
24
24
import Button from 'react-devtools-shared/src/devtools/views/Button' ;
25
25
import ButtonIcon from 'react-devtools-shared/src/devtools/views/ButtonIcon' ;
26
26
import { InspectedElementContext } from './InspectedElementContext' ;
27
+ import { PROTOCOLS_SUPPORTED_AS_LINKS_IN_KEY_VALUE } from './constants' ;
27
28
28
29
import type { InspectedElement } from './types' ;
29
30
import type { Element } from 'react-devtools-shared/src/devtools/views/Components/types' ;
@@ -243,11 +244,14 @@ export default function KeyValue({
243
244
displayValue = 'undefined' ;
244
245
}
245
246
246
- let shouldDisplayAsLink = false ;
247
- let protocolsAllowedAsLinks = [ 'file:///' , 'http://' , 'https://' , 'vscode://' ] ;
248
-
249
- if ( dataType === 'string' && protocolsAllowedAsLinks . some ( ( protocolPrefix ) => value . startsWith ( protocolPrefix ) ) ) {
250
- shouldDisplayAsLink = true ;
247
+ let shouldDisplayValueAsLink = false ;
248
+ if (
249
+ dataType === 'string' &&
250
+ PROTOCOLS_SUPPORTED_AS_LINKS_IN_KEY_VALUE . some ( protocolPrefix =>
251
+ value . startsWith ( protocolPrefix ) ,
252
+ )
253
+ ) {
254
+ shouldDisplayValueAsLink = true ;
251
255
}
252
256
253
257
children = (
@@ -266,12 +270,16 @@ export default function KeyValue({
266
270
path = { path }
267
271
value = { value }
268
272
/>
273
+ ) : shouldDisplayValueAsLink ? (
274
+ < a
275
+ className = { styles . Link }
276
+ href = { value }
277
+ target = "_blank"
278
+ rel = "noopener noreferrer" >
279
+ { displayValue }
280
+ </ a >
269
281
) : (
270
- ( shouldDisplayAsLink ) ? (
271
- < a href = { value } target = "_blank" > { displayValue } </ a >
272
- ) : (
273
- < span className = { styles . Value } > { displayValue } </ span >
274
- )
282
+ < span className = { styles . Value } > { displayValue } </ span >
275
283
) }
276
284
</ div >
277
285
) ;
0 commit comments