From e9d3ea7b2b55ff6bb12cbfc2e382d6d3851cff23 Mon Sep 17 00:00:00 2001 From: dblythy Date: Mon, 2 Nov 2020 03:33:39 +1100 Subject: [PATCH 1/7] Update CloudCode.react.js --- src/dashboard/Data/CloudCode/CloudCode.react.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/dashboard/Data/CloudCode/CloudCode.react.js b/src/dashboard/Data/CloudCode/CloudCode.react.js index 9387271680..5afef158b1 100644 --- a/src/dashboard/Data/CloudCode/CloudCode.react.js +++ b/src/dashboard/Data/CloudCode/CloudCode.react.js @@ -15,7 +15,8 @@ import styles from 'dashboard/Data/CloudCode/CloudCode.scss'; import Toolbar from 'components/Toolbar/Toolbar.react'; function getPath(params) { - return params.splat; + const last = params.location.pathname.split('cloud_code/')[1] + return last; } export default class CloudCode extends DashboardView { @@ -31,12 +32,12 @@ export default class CloudCode extends DashboardView { } componentWillMount() { - this.fetchSource(this.context.currentApp, getPath(this.props.params)); + this.fetchSource(this.context.currentApp, getPath(this.props)); } componentWillReceiveProps(nextProps, nextContext) { if (this.context !== nextContext) { - this.fetchSource(nextContext.currentApp, getPath(nextProps.params)); + this.fetchSource(nextContext.currentApp, getPath(nextProps)); } } @@ -52,7 +53,7 @@ export default class CloudCode extends DashboardView { if (!fileName || release.files[fileName] === undefined) { // Means we're still in /cloud_code/. Let's redirect to /cloud_code/main.js - history.replace(this.context.generatePath('cloud_code/main.js')) + history.replace(this.context.generatePath(`cloud_code/${Object.keys(release.files)[0]}`)) } else { // Means we can load /cloud_code/ app.getSource(fileName).then( @@ -66,7 +67,7 @@ export default class CloudCode extends DashboardView { } renderSidebar() { - let current = getPath(this.props.params) || ''; + let current = getPath(this.props) || ''; let files = this.state.files; if (!files) { return null; @@ -90,7 +91,7 @@ export default class CloudCode extends DashboardView { renderContent() { let toolbar = null; let content = null; - let fileName = getPath(this.props.params); + let fileName = getPath(this.props); if (!this.state.files || Object.keys(this.state.files).length === 0) { content = ( From 2a5c0503e8aaccb4e33dbecb62be38ea0489cde8 Mon Sep 17 00:00:00 2001 From: dblythy Date: Mon, 2 Nov 2020 14:24:15 +1100 Subject: [PATCH 2/7] Allow Writing Cloud Code --- .../SaveButton/SaveButton.example.js | 3 ++ src/components/SaveButton/SaveButton.react.js | 2 +- .../Data/CloudCode/CloudCode.react.js | 47 ++++++++++++++++--- src/lib/ParseApp.js | 22 ++++----- 4 files changed, 55 insertions(+), 19 deletions(-) diff --git a/src/components/SaveButton/SaveButton.example.js b/src/components/SaveButton/SaveButton.example.js index f7e55af774..bd2d50a3f6 100644 --- a/src/components/SaveButton/SaveButton.example.js +++ b/src/components/SaveButton/SaveButton.example.js @@ -55,6 +55,9 @@ export const demos = [
+
+ +
) }, { diff --git a/src/components/SaveButton/SaveButton.react.js b/src/components/SaveButton/SaveButton.react.js index 0bb741fa86..f7aced23db 100644 --- a/src/components/SaveButton/SaveButton.react.js +++ b/src/components/SaveButton/SaveButton.react.js @@ -52,7 +52,7 @@ let SaveButton = ({ ; }; -SaveButton.States = keyMirror(['SAVING', 'SUCCEEDED', 'FAILED']); +SaveButton.States = keyMirror(['SAVING', 'SUCCEEDED', 'FAILED', 'WAITING']); let {...forwardedButtonProps} = Button.propTypes; delete forwardedButtonProps.value; diff --git a/src/dashboard/Data/CloudCode/CloudCode.react.js b/src/dashboard/Data/CloudCode/CloudCode.react.js index 5afef158b1..f07aa84704 100644 --- a/src/dashboard/Data/CloudCode/CloudCode.react.js +++ b/src/dashboard/Data/CloudCode/CloudCode.react.js @@ -5,7 +5,7 @@ * This source code is licensed under the license found in the LICENSE file in * the root directory of this source tree. */ -import CodeSnippet from 'components/CodeSnippet/CodeSnippet.react'; +import CodeEditor from 'components/CodeEditor/CodeEditor.react'; import DashboardView from 'dashboard/DashboardView.react'; import EmptyState from 'components/EmptyState/EmptyState.react'; import FileTree from 'components/FileTree/FileTree.react'; @@ -13,6 +13,7 @@ import history from 'dashboard/history'; import React from 'react'; import styles from 'dashboard/Data/CloudCode/CloudCode.scss'; import Toolbar from 'components/Toolbar/Toolbar.react'; +import SaveButton from 'components/SaveButton/SaveButton.react'; function getPath(params) { const last = params.location.pathname.split('cloud_code/')[1] @@ -27,7 +28,9 @@ export default class CloudCode extends DashboardView { this.state = { files: undefined, - source: undefined + source: undefined, + saveState: SaveButton.States.WAITING, + saveError: '', }; } @@ -56,8 +59,14 @@ export default class CloudCode extends DashboardView { history.replace(this.context.generatePath(`cloud_code/${Object.keys(release.files)[0]}`)) } else { // Means we can load /cloud_code/ + this.setState({ source: undefined }) app.getSource(fileName).then( - (source) => this.setState({ source: source }), + (source) => { + this.setState({ source: source }) + if (this.editor) { + this.editor.value = source; + } + }, () => this.setState({ source: undefined }) ); } @@ -87,7 +96,23 @@ export default class CloudCode extends DashboardView { ); } - + async getCode() { + if (!this.editor) { + return; + } + this.setState({ saveState: SaveButton.States.SAVING }); + let fileName = getPath(this.props); + try { + await this.context.currentApp.saveSource(fileName,this.editor.value); + this.setState({ saveState: SaveButton.States.SUCCEEDED }); + setTimeout(()=> { + this.setState({ saveState: SaveButton.States.WAITING }); + },2000); + } catch (e) { + this.setState({ saveState: SaveButton.States.FAILED }); + this.setState({ saveError: e.message || e }); + } + } renderContent() { let toolbar = null; let content = null; @@ -111,10 +136,20 @@ export default class CloudCode extends DashboardView { subsection={fileName} />; let source = this.state.files[fileName]; - if (source && source.source) { + if ((source && source.source) || this.state.source) { content = (
- + (this.editor = editor)} + fontSize={'14px'} + /> + this.getCode(this)}>
); } diff --git a/src/lib/ParseApp.js b/src/lib/ParseApp.js index 0065109f06..f0b5f0110a 100644 --- a/src/lib/ParseApp.js +++ b/src/lib/ParseApp.js @@ -117,6 +117,15 @@ export default class ParseApp { return this.apiRequest('GET', path, {}, { useMasterKey: true }); } + /** + * Saves source of a Cloud Code hosted file from api.parse.com + * fileName - the name of the file to be fetched + * data - the text to save to the cloud file + */ + saveSource(fileName,data) { + return this.apiRequest('POST', `scripts/${fileName}`, {data}, { useMasterKey: true }); + } + /** * Fetches source of a Cloud Code hosted file from api.parse.com * fileName - the name of the file to be fetched @@ -127,22 +136,11 @@ export default class ParseApp { // No release yet return Promise.resolve(null); } - - let fileMetaData = release.files[fileName]; - if (fileMetaData && fileMetaData.source) { - return Promise.resolve(fileMetaData.source); - } - - let params = { - version: fileMetaData.version, - checksum: fileMetaData.checksum - } - return this.apiRequest('GET', `scripts/${fileName}`, params, { useMasterKey: true }); + return this.apiRequest('GET', `scripts/${fileName}`, {}, { useMasterKey: true }); }).then((source) => { if (this.latestRelease.files) { this.latestRelease.files[fileName].source = source; } - return Promise.resolve(source); }); } From 44eea2a436be2ffc63c006b0cb2468240835005f Mon Sep 17 00:00:00 2001 From: dblythy Date: Mon, 2 Nov 2020 03:33:39 +1100 Subject: [PATCH 3/7] Update CloudCode.react.js --- src/dashboard/Data/CloudCode/CloudCode.react.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/dashboard/Data/CloudCode/CloudCode.react.js b/src/dashboard/Data/CloudCode/CloudCode.react.js index 9387271680..5afef158b1 100644 --- a/src/dashboard/Data/CloudCode/CloudCode.react.js +++ b/src/dashboard/Data/CloudCode/CloudCode.react.js @@ -15,7 +15,8 @@ import styles from 'dashboard/Data/CloudCode/CloudCode.scss'; import Toolbar from 'components/Toolbar/Toolbar.react'; function getPath(params) { - return params.splat; + const last = params.location.pathname.split('cloud_code/')[1] + return last; } export default class CloudCode extends DashboardView { @@ -31,12 +32,12 @@ export default class CloudCode extends DashboardView { } componentWillMount() { - this.fetchSource(this.context.currentApp, getPath(this.props.params)); + this.fetchSource(this.context.currentApp, getPath(this.props)); } componentWillReceiveProps(nextProps, nextContext) { if (this.context !== nextContext) { - this.fetchSource(nextContext.currentApp, getPath(nextProps.params)); + this.fetchSource(nextContext.currentApp, getPath(nextProps)); } } @@ -52,7 +53,7 @@ export default class CloudCode extends DashboardView { if (!fileName || release.files[fileName] === undefined) { // Means we're still in /cloud_code/. Let's redirect to /cloud_code/main.js - history.replace(this.context.generatePath('cloud_code/main.js')) + history.replace(this.context.generatePath(`cloud_code/${Object.keys(release.files)[0]}`)) } else { // Means we can load /cloud_code/ app.getSource(fileName).then( @@ -66,7 +67,7 @@ export default class CloudCode extends DashboardView { } renderSidebar() { - let current = getPath(this.props.params) || ''; + let current = getPath(this.props) || ''; let files = this.state.files; if (!files) { return null; @@ -90,7 +91,7 @@ export default class CloudCode extends DashboardView { renderContent() { let toolbar = null; let content = null; - let fileName = getPath(this.props.params); + let fileName = getPath(this.props); if (!this.state.files || Object.keys(this.state.files).length === 0) { content = ( From d7454a1cc338f440c06b9c3e411ca7cbce18a4df Mon Sep 17 00:00:00 2001 From: dblythy Date: Mon, 2 Nov 2020 14:24:15 +1100 Subject: [PATCH 4/7] Allow Writing Cloud Code --- .../SaveButton/SaveButton.example.js | 3 ++ src/components/SaveButton/SaveButton.react.js | 2 +- .../Data/CloudCode/CloudCode.react.js | 47 ++++++++++++++++--- src/lib/ParseApp.js | 22 ++++----- 4 files changed, 55 insertions(+), 19 deletions(-) diff --git a/src/components/SaveButton/SaveButton.example.js b/src/components/SaveButton/SaveButton.example.js index f7e55af774..bd2d50a3f6 100644 --- a/src/components/SaveButton/SaveButton.example.js +++ b/src/components/SaveButton/SaveButton.example.js @@ -55,6 +55,9 @@ export const demos = [
+
+ +
) }, { diff --git a/src/components/SaveButton/SaveButton.react.js b/src/components/SaveButton/SaveButton.react.js index 0bb741fa86..f7aced23db 100644 --- a/src/components/SaveButton/SaveButton.react.js +++ b/src/components/SaveButton/SaveButton.react.js @@ -52,7 +52,7 @@ let SaveButton = ({ ; }; -SaveButton.States = keyMirror(['SAVING', 'SUCCEEDED', 'FAILED']); +SaveButton.States = keyMirror(['SAVING', 'SUCCEEDED', 'FAILED', 'WAITING']); let {...forwardedButtonProps} = Button.propTypes; delete forwardedButtonProps.value; diff --git a/src/dashboard/Data/CloudCode/CloudCode.react.js b/src/dashboard/Data/CloudCode/CloudCode.react.js index 5afef158b1..f07aa84704 100644 --- a/src/dashboard/Data/CloudCode/CloudCode.react.js +++ b/src/dashboard/Data/CloudCode/CloudCode.react.js @@ -5,7 +5,7 @@ * This source code is licensed under the license found in the LICENSE file in * the root directory of this source tree. */ -import CodeSnippet from 'components/CodeSnippet/CodeSnippet.react'; +import CodeEditor from 'components/CodeEditor/CodeEditor.react'; import DashboardView from 'dashboard/DashboardView.react'; import EmptyState from 'components/EmptyState/EmptyState.react'; import FileTree from 'components/FileTree/FileTree.react'; @@ -13,6 +13,7 @@ import history from 'dashboard/history'; import React from 'react'; import styles from 'dashboard/Data/CloudCode/CloudCode.scss'; import Toolbar from 'components/Toolbar/Toolbar.react'; +import SaveButton from 'components/SaveButton/SaveButton.react'; function getPath(params) { const last = params.location.pathname.split('cloud_code/')[1] @@ -27,7 +28,9 @@ export default class CloudCode extends DashboardView { this.state = { files: undefined, - source: undefined + source: undefined, + saveState: SaveButton.States.WAITING, + saveError: '', }; } @@ -56,8 +59,14 @@ export default class CloudCode extends DashboardView { history.replace(this.context.generatePath(`cloud_code/${Object.keys(release.files)[0]}`)) } else { // Means we can load /cloud_code/ + this.setState({ source: undefined }) app.getSource(fileName).then( - (source) => this.setState({ source: source }), + (source) => { + this.setState({ source: source }) + if (this.editor) { + this.editor.value = source; + } + }, () => this.setState({ source: undefined }) ); } @@ -87,7 +96,23 @@ export default class CloudCode extends DashboardView { ); } - + async getCode() { + if (!this.editor) { + return; + } + this.setState({ saveState: SaveButton.States.SAVING }); + let fileName = getPath(this.props); + try { + await this.context.currentApp.saveSource(fileName,this.editor.value); + this.setState({ saveState: SaveButton.States.SUCCEEDED }); + setTimeout(()=> { + this.setState({ saveState: SaveButton.States.WAITING }); + },2000); + } catch (e) { + this.setState({ saveState: SaveButton.States.FAILED }); + this.setState({ saveError: e.message || e }); + } + } renderContent() { let toolbar = null; let content = null; @@ -111,10 +136,20 @@ export default class CloudCode extends DashboardView { subsection={fileName} />; let source = this.state.files[fileName]; - if (source && source.source) { + if ((source && source.source) || this.state.source) { content = (
- + (this.editor = editor)} + fontSize={'14px'} + /> + this.getCode(this)}>
); } diff --git a/src/lib/ParseApp.js b/src/lib/ParseApp.js index 6cf0881f2b..863689111b 100644 --- a/src/lib/ParseApp.js +++ b/src/lib/ParseApp.js @@ -119,6 +119,15 @@ export default class ParseApp { return this.apiRequest('GET', path, {}, { useMasterKey: true }); } + /** + * Saves source of a Cloud Code hosted file from api.parse.com + * fileName - the name of the file to be fetched + * data - the text to save to the cloud file + */ + saveSource(fileName,data) { + return this.apiRequest('POST', `scripts/${fileName}`, {data}, { useMasterKey: true }); + } + /** * Fetches source of a Cloud Code hosted file from api.parse.com * fileName - the name of the file to be fetched @@ -129,22 +138,11 @@ export default class ParseApp { // No release yet return Promise.resolve(null); } - - let fileMetaData = release.files[fileName]; - if (fileMetaData && fileMetaData.source) { - return Promise.resolve(fileMetaData.source); - } - - let params = { - version: fileMetaData.version, - checksum: fileMetaData.checksum - } - return this.apiRequest('GET', `scripts/${fileName}`, params, { useMasterKey: true }); + return this.apiRequest('GET', `scripts/${fileName}`, {}, { useMasterKey: true }); }).then((source) => { if (this.latestRelease.files) { this.latestRelease.files[fileName].source = source; } - return Promise.resolve(source); }); } From b85fe40ab50927452e122345684a48551671c9f4 Mon Sep 17 00:00:00 2001 From: dblythy Date: Sat, 4 Sep 2021 16:11:30 +1000 Subject: [PATCH 5/7] Revert "Allow Writing Cloud Code" This reverts commit d7454a1cc338f440c06b9c3e411ca7cbce18a4df. --- .../SaveButton/SaveButton.example.js | 3 -- src/components/SaveButton/SaveButton.react.js | 2 +- .../Data/CloudCode/CloudCode.react.js | 47 +++---------------- src/lib/ParseApp.js | 22 +++++---- 4 files changed, 19 insertions(+), 55 deletions(-) diff --git a/src/components/SaveButton/SaveButton.example.js b/src/components/SaveButton/SaveButton.example.js index bd2d50a3f6..f7e55af774 100644 --- a/src/components/SaveButton/SaveButton.example.js +++ b/src/components/SaveButton/SaveButton.example.js @@ -55,9 +55,6 @@ export const demos = [
-
- -
) }, { diff --git a/src/components/SaveButton/SaveButton.react.js b/src/components/SaveButton/SaveButton.react.js index f7aced23db..0bb741fa86 100644 --- a/src/components/SaveButton/SaveButton.react.js +++ b/src/components/SaveButton/SaveButton.react.js @@ -52,7 +52,7 @@ let SaveButton = ({ ; }; -SaveButton.States = keyMirror(['SAVING', 'SUCCEEDED', 'FAILED', 'WAITING']); +SaveButton.States = keyMirror(['SAVING', 'SUCCEEDED', 'FAILED']); let {...forwardedButtonProps} = Button.propTypes; delete forwardedButtonProps.value; diff --git a/src/dashboard/Data/CloudCode/CloudCode.react.js b/src/dashboard/Data/CloudCode/CloudCode.react.js index f07aa84704..5afef158b1 100644 --- a/src/dashboard/Data/CloudCode/CloudCode.react.js +++ b/src/dashboard/Data/CloudCode/CloudCode.react.js @@ -5,7 +5,7 @@ * This source code is licensed under the license found in the LICENSE file in * the root directory of this source tree. */ -import CodeEditor from 'components/CodeEditor/CodeEditor.react'; +import CodeSnippet from 'components/CodeSnippet/CodeSnippet.react'; import DashboardView from 'dashboard/DashboardView.react'; import EmptyState from 'components/EmptyState/EmptyState.react'; import FileTree from 'components/FileTree/FileTree.react'; @@ -13,7 +13,6 @@ import history from 'dashboard/history'; import React from 'react'; import styles from 'dashboard/Data/CloudCode/CloudCode.scss'; import Toolbar from 'components/Toolbar/Toolbar.react'; -import SaveButton from 'components/SaveButton/SaveButton.react'; function getPath(params) { const last = params.location.pathname.split('cloud_code/')[1] @@ -28,9 +27,7 @@ export default class CloudCode extends DashboardView { this.state = { files: undefined, - source: undefined, - saveState: SaveButton.States.WAITING, - saveError: '', + source: undefined }; } @@ -59,14 +56,8 @@ export default class CloudCode extends DashboardView { history.replace(this.context.generatePath(`cloud_code/${Object.keys(release.files)[0]}`)) } else { // Means we can load /cloud_code/ - this.setState({ source: undefined }) app.getSource(fileName).then( - (source) => { - this.setState({ source: source }) - if (this.editor) { - this.editor.value = source; - } - }, + (source) => this.setState({ source: source }), () => this.setState({ source: undefined }) ); } @@ -96,23 +87,7 @@ export default class CloudCode extends DashboardView { ); } - async getCode() { - if (!this.editor) { - return; - } - this.setState({ saveState: SaveButton.States.SAVING }); - let fileName = getPath(this.props); - try { - await this.context.currentApp.saveSource(fileName,this.editor.value); - this.setState({ saveState: SaveButton.States.SUCCEEDED }); - setTimeout(()=> { - this.setState({ saveState: SaveButton.States.WAITING }); - },2000); - } catch (e) { - this.setState({ saveState: SaveButton.States.FAILED }); - this.setState({ saveError: e.message || e }); - } - } + renderContent() { let toolbar = null; let content = null; @@ -136,20 +111,10 @@ export default class CloudCode extends DashboardView { subsection={fileName} />; let source = this.state.files[fileName]; - if ((source && source.source) || this.state.source) { + if (source && source.source) { content = (
- (this.editor = editor)} - fontSize={'14px'} - /> - this.getCode(this)}> +
); } diff --git a/src/lib/ParseApp.js b/src/lib/ParseApp.js index 863689111b..6cf0881f2b 100644 --- a/src/lib/ParseApp.js +++ b/src/lib/ParseApp.js @@ -119,15 +119,6 @@ export default class ParseApp { return this.apiRequest('GET', path, {}, { useMasterKey: true }); } - /** - * Saves source of a Cloud Code hosted file from api.parse.com - * fileName - the name of the file to be fetched - * data - the text to save to the cloud file - */ - saveSource(fileName,data) { - return this.apiRequest('POST', `scripts/${fileName}`, {data}, { useMasterKey: true }); - } - /** * Fetches source of a Cloud Code hosted file from api.parse.com * fileName - the name of the file to be fetched @@ -138,11 +129,22 @@ export default class ParseApp { // No release yet return Promise.resolve(null); } - return this.apiRequest('GET', `scripts/${fileName}`, {}, { useMasterKey: true }); + + let fileMetaData = release.files[fileName]; + if (fileMetaData && fileMetaData.source) { + return Promise.resolve(fileMetaData.source); + } + + let params = { + version: fileMetaData.version, + checksum: fileMetaData.checksum + } + return this.apiRequest('GET', `scripts/${fileName}`, params, { useMasterKey: true }); }).then((source) => { if (this.latestRelease.files) { this.latestRelease.files[fileName].source = source; } + return Promise.resolve(source); }); } From eea1e2dad28795e55467091dc2f7d99790bdd3c4 Mon Sep 17 00:00:00 2001 From: dblythy Date: Sat, 4 Sep 2021 16:11:34 +1000 Subject: [PATCH 6/7] Revert "Update CloudCode.react.js" This reverts commit 44eea2a436be2ffc63c006b0cb2468240835005f. --- src/dashboard/Data/CloudCode/CloudCode.react.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/dashboard/Data/CloudCode/CloudCode.react.js b/src/dashboard/Data/CloudCode/CloudCode.react.js index 5afef158b1..9387271680 100644 --- a/src/dashboard/Data/CloudCode/CloudCode.react.js +++ b/src/dashboard/Data/CloudCode/CloudCode.react.js @@ -15,8 +15,7 @@ import styles from 'dashboard/Data/CloudCode/CloudCode.scss'; import Toolbar from 'components/Toolbar/Toolbar.react'; function getPath(params) { - const last = params.location.pathname.split('cloud_code/')[1] - return last; + return params.splat; } export default class CloudCode extends DashboardView { @@ -32,12 +31,12 @@ export default class CloudCode extends DashboardView { } componentWillMount() { - this.fetchSource(this.context.currentApp, getPath(this.props)); + this.fetchSource(this.context.currentApp, getPath(this.props.params)); } componentWillReceiveProps(nextProps, nextContext) { if (this.context !== nextContext) { - this.fetchSource(nextContext.currentApp, getPath(nextProps)); + this.fetchSource(nextContext.currentApp, getPath(nextProps.params)); } } @@ -53,7 +52,7 @@ export default class CloudCode extends DashboardView { if (!fileName || release.files[fileName] === undefined) { // Means we're still in /cloud_code/. Let's redirect to /cloud_code/main.js - history.replace(this.context.generatePath(`cloud_code/${Object.keys(release.files)[0]}`)) + history.replace(this.context.generatePath('cloud_code/main.js')) } else { // Means we can load /cloud_code/ app.getSource(fileName).then( @@ -67,7 +66,7 @@ export default class CloudCode extends DashboardView { } renderSidebar() { - let current = getPath(this.props) || ''; + let current = getPath(this.props.params) || ''; let files = this.state.files; if (!files) { return null; @@ -91,7 +90,7 @@ export default class CloudCode extends DashboardView { renderContent() { let toolbar = null; let content = null; - let fileName = getPath(this.props); + let fileName = getPath(this.props.params); if (!this.state.files || Object.keys(this.state.files).length === 0) { content = ( From 34536b3ba200728e38ff017e487b0339bf0bee6b Mon Sep 17 00:00:00 2001 From: dblythy Date: Thu, 7 Oct 2021 00:27:22 +1100 Subject: [PATCH 7/7] feat: allow graphQL headers --- src/dashboard/Data/ApiConsole/GraphQLConsole.react.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/dashboard/Data/ApiConsole/GraphQLConsole.react.js b/src/dashboard/Data/ApiConsole/GraphQLConsole.react.js index d082c819af..10cf3ae2ee 100644 --- a/src/dashboard/Data/ApiConsole/GraphQLConsole.react.js +++ b/src/dashboard/Data/ApiConsole/GraphQLConsole.react.js @@ -29,16 +29,18 @@ export default class GraphQLConsole extends Component { ); } else { - const headers = { + const parseHeaders = { 'X-Parse-Application-Id': applicationId, 'X-Parse-Master-Key': masterKey } if (clientKey) { - headers['X-Parse-Client-Key'] = clientKey + parseHeaders['X-Parse-Client-Key'] = clientKey } content = ( { + headers={JSON.stringify(parseHeaders)} + headerEditorEnabled={true} + fetcher={async (graphQLParams, {headers}) => { const data = await fetch( graphQLServerURL, {