From e283b7ed37d43b37eff87968b635cba5e6072e80 Mon Sep 17 00:00:00 2001 From: CodHeK Date: Fri, 21 Dec 2018 20:21:40 +0530 Subject: [PATCH 1/4] persist_headers_#275 --- .../src/components/ApiExplorer/ApiRequest.js | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/console/src/components/ApiExplorer/ApiRequest.js b/console/src/components/ApiExplorer/ApiRequest.js index fa727b81b121e..d85520bc1f14a 100644 --- a/console/src/components/ApiExplorer/ApiRequest.js +++ b/console/src/components/ApiExplorer/ApiRequest.js @@ -197,7 +197,34 @@ class ApiRequest extends Component { } getHeaderRows() { - const rows = this.props.headers.map((header, i) => { + let headers; + if (localStorage.getItem('HASURA_CONSOLE_GRAPHIQL_HEADERS')) { + const stored_headers = JSON.parse( + localStorage.getItem('HASURA_CONSOLE_GRAPHIQL_HEADERS') + ); + console.log(stored_headers); + console.log(this.props.headers); + //Case when user loads again. + if (stored_headers.length > this.props.headers.length) { + const input_row = this.props.headers.pop(); + for (let i = 2; i <= stored_headers.length - 2; i++) { + this.props.headers.push(stored_headers[i]); + } + this.props.headers.push(input_row); + } + headers = this.props.headers; + localStorage.setItem( + 'HASURA_CONSOLE_GRAPHIQL_HEADERS', + JSON.stringify(headers) + ); + } else { + headers = this.props.headers; + localStorage.setItem( + 'HASURA_CONSOLE_GRAPHIQL_HEADERS', + JSON.stringify(headers) + ); + } + const rows = headers.map((header, i) => { return ( {header.isNewHeader ? null : ( From 708f5c35eb691d48c9bc110fb911ec0ffc9a1ea0 Mon Sep 17 00:00:00 2001 From: CodHeK Date: Sat, 22 Dec 2018 11:00:56 +0530 Subject: [PATCH 2/4] handled case when user deletes header from console --- .../src/components/ApiExplorer/ApiRequest.js | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/console/src/components/ApiExplorer/ApiRequest.js b/console/src/components/ApiExplorer/ApiRequest.js index d85520bc1f14a..46e6273ac3d21 100644 --- a/console/src/components/ApiExplorer/ApiRequest.js +++ b/console/src/components/ApiExplorer/ApiRequest.js @@ -23,7 +23,9 @@ const styles = require('./ApiExplorer.scss'); class ApiRequest extends Component { constructor(props) { super(props); - this.state = {}; + this.state = { + deletedHeader: false, + }; this.state.accessKeyVisible = false; this.state.bodyAllowedMethods = ['POST']; this.state.tabIndex = 0; @@ -66,6 +68,7 @@ class ApiRequest extends Component { onDeleteHeaderClicked(e) { const index = parseInt(e.target.getAttribute('data-header-id'), 10); + this.setState({ deletedHeader: true }); this.props.dispatch(removeRequestHeader(index)); } @@ -198,20 +201,34 @@ class ApiRequest extends Component { getHeaderRows() { let headers; + const headers_map = new Map(); if (localStorage.getItem('HASURA_CONSOLE_GRAPHIQL_HEADERS')) { const stored_headers = JSON.parse( localStorage.getItem('HASURA_CONSOLE_GRAPHIQL_HEADERS') ); - console.log(stored_headers); - console.log(this.props.headers); + for (const s_h of this.props.headers) { + if (!headers_map.has(s_h.key)) { + headers_map.set(s_h.key, 1); + } + } //Case when user loads again. - if (stored_headers.length > this.props.headers.length) { + if ( + stored_headers.length > this.props.headers.length && + this.state.deletedHeader === false + ) { const input_row = this.props.headers.pop(); for (let i = 2; i <= stored_headers.length - 2; i++) { - this.props.headers.push(stored_headers[i]); + if (!headers_map.has(stored_headers[i].key)) { this.props.headers.push(stored_headers[i]); } } this.props.headers.push(input_row); } + //Case when user deletes a header from console. + if ( + stored_headers.length > this.props.headers.length && + this.state.deletedHeader === true + ) { + this.setState({ deletedHeader: false }); + } headers = this.props.headers; localStorage.setItem( 'HASURA_CONSOLE_GRAPHIQL_HEADERS', From dfbdecb7709692084dc32902f223f4c0421bd830 Mon Sep 17 00:00:00 2001 From: CodHeK Date: Sat, 22 Dec 2018 12:15:09 +0530 Subject: [PATCH 3/4] minor fix --- console/src/components/ApiExplorer/ApiRequest.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/console/src/components/ApiExplorer/ApiRequest.js b/console/src/components/ApiExplorer/ApiRequest.js index 46e6273ac3d21..11ceb18bb231b 100644 --- a/console/src/components/ApiExplorer/ApiRequest.js +++ b/console/src/components/ApiExplorer/ApiRequest.js @@ -216,9 +216,17 @@ class ApiRequest extends Component { stored_headers.length > this.props.headers.length && this.state.deletedHeader === false ) { + const initHeaderCount = this.props.headers.length - 1; const input_row = this.props.headers.pop(); - for (let i = 2; i <= stored_headers.length - 2; i++) { - if (!headers_map.has(stored_headers[i].key)) { this.props.headers.push(stored_headers[i]); } + for ( + let i = initHeaderCount; + i <= stored_headers.length - initHeaderCount; + i++ + ) { + console.log(i); + if (!headers_map.has(stored_headers[i].key)) { + this.props.headers.push(stored_headers[i]); + } } this.props.headers.push(input_row); } From 59dab7eda5622ebca8a8a88c4ba6fec28f82015a Mon Sep 17 00:00:00 2001 From: CodHeK Date: Wed, 2 Jan 2019 19:06:45 +0530 Subject: [PATCH 4/4] removed console log --- console/src/components/ApiExplorer/ApiRequest.js | 1 - 1 file changed, 1 deletion(-) diff --git a/console/src/components/ApiExplorer/ApiRequest.js b/console/src/components/ApiExplorer/ApiRequest.js index 11ceb18bb231b..69122260b3404 100644 --- a/console/src/components/ApiExplorer/ApiRequest.js +++ b/console/src/components/ApiExplorer/ApiRequest.js @@ -223,7 +223,6 @@ class ApiRequest extends Component { i <= stored_headers.length - initHeaderCount; i++ ) { - console.log(i); if (!headers_map.has(stored_headers[i].key)) { this.props.headers.push(stored_headers[i]); }