From 0f2002c403a69710eed0ddcfd2720e2443b64130 Mon Sep 17 00:00:00 2001 From: Anoop M D Date: Fri, 31 Dec 2021 23:25:53 +0530 Subject: [PATCH] feat: response headers --- .../src/components/RequestHeaders/index.js | 4 +-- .../src/components/RequestTabPanel/index.js | 15 ++-------- .../ResponseHeaders/StyledWrapper.js | 25 +++++++++++++++++ .../src/components/ResponseHeaders/index.js | 28 +++++++++++++++++++ .../src/components/ResponsePane/index.js | 7 +++-- .../src/providers/Store/reducer.js | 1 + 6 files changed, 63 insertions(+), 17 deletions(-) create mode 100644 packages/grafnode-components/src/components/ResponseHeaders/StyledWrapper.js create mode 100644 packages/grafnode-components/src/components/ResponseHeaders/index.js diff --git a/packages/grafnode-components/src/components/RequestHeaders/index.js b/packages/grafnode-components/src/components/RequestHeaders/index.js index 414acb834..57fe2aa2f 100644 --- a/packages/grafnode-components/src/components/RequestHeaders/index.js +++ b/packages/grafnode-components/src/components/RequestHeaders/index.js @@ -45,7 +45,7 @@ const RequestHeaders = () => { - {headers && headers.length && headers.map((header, index) => { + {headers && headers.length ? headers.map((header, index) => { return ( @@ -87,7 +87,7 @@ const RequestHeaders = () => { ); - })} + }) : null} diff --git a/packages/grafnode-components/src/components/RequestTabPanel/index.js b/packages/grafnode-components/src/components/RequestTabPanel/index.js index 6a43b03f1..6fdc9bbcc 100644 --- a/packages/grafnode-components/src/components/RequestTabPanel/index.js +++ b/packages/grafnode-components/src/components/RequestTabPanel/index.js @@ -81,29 +81,17 @@ const RequestTabPanel = ({dispatch, actions, collections, activeRequestTabId, re const { data, errors, extensions, headers, status } = await rawRequest(item.request.url, query); setData(data); setIsLoading(false); - console.log(data); console.log(headers); if(data && !errors) { dispatch({ type: actions.RESPONSE_RECEIVED, response: data, + responseHeaders: Object.entries(headers.map), requestTab: focusedTab, collectionId: collection.id }); } - - // request(item.request.url, gql`${item.request.body.graphql.query}`) - // .then((data, stuff) => { - // console.log(data); - // console.log(stuff); - // setData(data); - // setIsLoading(false); - // }) - // .catch((err) => { - // setIsLoading(false); - // console.log(err); - // }); }; return ( @@ -141,6 +129,7 @@ const RequestTabPanel = ({dispatch, actions, collections, activeRequestTabId, re diff --git a/packages/grafnode-components/src/components/ResponseHeaders/StyledWrapper.js b/packages/grafnode-components/src/components/ResponseHeaders/StyledWrapper.js new file mode 100644 index 000000000..47c4b960c --- /dev/null +++ b/packages/grafnode-components/src/components/ResponseHeaders/StyledWrapper.js @@ -0,0 +1,25 @@ +import styled from 'styled-components'; + +const Wrapper = styled.div` + table { + width: 100%; + border-collapse: collapse; + + thead, td { + border: 1px solid #efefef; + } + + thead { + color: #777777; + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; + } + + td { + padding: 6px 10px; + } + } +`; + +export default Wrapper; diff --git a/packages/grafnode-components/src/components/ResponseHeaders/index.js b/packages/grafnode-components/src/components/ResponseHeaders/index.js new file mode 100644 index 000000000..201219ca4 --- /dev/null +++ b/packages/grafnode-components/src/components/ResponseHeaders/index.js @@ -0,0 +1,28 @@ +import React from 'react'; +import StyledWrapper from './StyledWrapper'; + +const ResponseHeaders = ({headers}) => { + return ( + + + + + + + + + + {headers && headers.length ? headers.map((header, index) => { + return ( + + + + + ); + }) : null} + +
NameValue
{header[0]}{header[1]}
+
+ ) +}; +export default ResponseHeaders; \ No newline at end of file diff --git a/packages/grafnode-components/src/components/ResponsePane/index.js b/packages/grafnode-components/src/components/ResponsePane/index.js index 7b55768b0..042d516a9 100644 --- a/packages/grafnode-components/src/components/ResponsePane/index.js +++ b/packages/grafnode-components/src/components/ResponsePane/index.js @@ -1,9 +1,10 @@ import React, { useState } from 'react'; import classnames from 'classnames'; import QueryResult from '../QueryResult'; +import ResponseHeaders from '../ResponseHeaders'; import StyledWrapper from './StyledWrapper'; -const ResponsePane = ({rightPaneWidth, data, isLoading}) => { +const ResponsePane = ({rightPaneWidth, data, isLoading, headers}) => { const [selectedTab, setSelectedTab] = useState('response'); const getTabClassname = (tabName) => { @@ -24,7 +25,9 @@ const ResponsePane = ({rightPaneWidth, data, isLoading}) => { ); } case 'headers': { - return
Headers
; + return ( + + ); } default: { diff --git a/packages/grafnode-run/src/providers/Store/reducer.js b/packages/grafnode-run/src/providers/Store/reducer.js index 33ab693cc..a9a00557a 100644 --- a/packages/grafnode-run/src/providers/Store/reducer.js +++ b/packages/grafnode-run/src/providers/Store/reducer.js @@ -67,6 +67,7 @@ const reducer = (state, action) => { if(item) { item.response = action.response; + item.responseHeaders = action.responseHeaders; } } });