@@ -19,23 +19,48 @@ import React from 'react'
1919import TextPayload from './TextPayload'
2020import JsonPayload from './JsonPayload'
2121
22+ import './HttpPayload.css'
23+
2224function PayloadData ( { type, data, checks} ) {
2325 return type . indexOf ( 'json' ) !== - 1 ?
2426 < JsonPayload json = { JSON . parse ( data ) } checks = { checks } /> :
2527 < TextPayload text = { data } />
2628}
2729
28- function HttpPayload ( { caption, type, data, checks} ) {
29- if ( ! data ) {
30+ function HttpPayload ( { caption, type, data, checks, httpCallId , payloadType } ) {
31+ if ( ! data ) {
3032 return null
3133 }
3234
35+ const fullScreen = payloadType && (
36+ < div className = "fullscreen-icon" >
37+ < a href = { "?httpCallId=" + httpCallId + "&payloadType=" + payloadType }
38+ target = "_blank"
39+ rel = "noopener noreferrer" >
40+ < FullScreenIcon />
41+ </ a >
42+ </ div >
43+ )
44+
3345 return (
34- < div className = "payload" >
35- < div className = "caption" > { caption } </ div >
46+ < div className = "http-payload" >
47+ < div className = "caption-and-fullscreen" >
48+ < div className = "caption" > { caption } </ div >
49+ { fullScreen }
50+ </ div >
3651 < PayloadData type = { type } data = { data } checks = { checks } />
3752 </ div >
3853 )
3954}
4055
56+ function FullScreenIcon ( ) {
57+ return (
58+ < svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24" fill = "none"
59+ stroke = "currentColor" strokeWidth = "2" strokeLinecap = "round" strokeLinejoin = "round"
60+ className = "feather feather-maximize" >
61+ < path d = "M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3" />
62+ </ svg >
63+ )
64+ }
65+
4166export default HttpPayload
0 commit comments