Skip to content

Commit 9b5f17a

Browse files
committed
enhance GraphQL editor functionality
Update browser support, improve type definitions, and
1 parent a8809a1 commit 9b5f17a

File tree

11 files changed

+2776
-4130
lines changed

11 files changed

+2776
-4130
lines changed

.browserslistrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
since 2010
1+
since 2016

components/Config/QuerySlide/GraphQlEditor.tsx

Lines changed: 74 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,96 @@ import AceCodeEditor from "components/Editors/AceCodeEditor";
33
import MonacoCodeEditor from "components/Editors/MonacoCodeEditor";
44
import useDeviceType from "hooks/useDeviceType";
55
import { useState } from "react";
6+
import styles from "@styles/GraphqlEditor.module.scss";
67

78
export default function GraphQlEditor() {
89
const param = useParams();
9-
const [value, setValue] = useState(``);
10+
const [queryValue, setQueryValue] = useState(``);
11+
const [variablesValue, setVariablesValue] = useState(``);
1012
const isMobile = useDeviceType();
13+
const [tab, setTab] = useState("query");
1114

1215
return (
1316
<>
1417
<h2>GraphQl Query</h2>
15-
{isMobile === "mobile" ? (
18+
<div className={styles["tab-container"]}>
19+
<input
20+
type="radio"
21+
name="select-query"
22+
id="gql-query"
23+
title="query"
24+
defaultChecked
25+
onClick={() => {
26+
setTab("query");
27+
}}
28+
/>
29+
<input
30+
type="radio"
31+
name="select-query"
32+
id="gql-variables"
33+
title="variables"
34+
onClick={() => {
35+
setTab("variables");
36+
}}
37+
/>
38+
<label htmlFor="gql-query">
39+
Query
40+
{tab === "query" && <div className={styles.underline} />}
41+
</label>
42+
<label htmlFor="gql-variables">
43+
Variables
44+
{tab === "variables" && (
45+
<div className={styles.underline} />
46+
)}
47+
</label>
48+
</div>
49+
{tab === "query" ? (
50+
isMobile === "mobile" ? (
51+
<AceCodeEditor
52+
value={queryValue}
53+
mode="puppet"
54+
onChange={value => {
55+
setQueryValue(value);
56+
param.setObject(prev => ({
57+
query: value,
58+
variables: prev?.variables || "",
59+
}));
60+
}}
61+
/>
62+
) : (
63+
<MonacoCodeEditor
64+
language="graphql"
65+
onChange={value => {
66+
setQueryValue(value);
67+
param.setObject(prev => ({
68+
query: value,
69+
variables: prev?.variables || "",
70+
}));
71+
}}
72+
value={queryValue}
73+
/>
74+
)
75+
) : isMobile === "mobile" ? (
1676
<AceCodeEditor
17-
value={value}
18-
mode="puppet"
77+
value={variablesValue}
1978
onChange={value => {
20-
setValue(value);
21-
param.setObject(prev => ({ query: value }));
79+
setVariablesValue(value);
80+
param.setObject(prev => ({
81+
variables: value,
82+
query: prev?.query || "",
83+
}));
2284
}}
2385
/>
2486
) : (
2587
<MonacoCodeEditor
26-
language="graphql"
2788
onChange={value => {
28-
setValue(value);
29-
param.setObject(prev => ({ query: value }));
89+
setVariablesValue(value);
90+
param.setObject(prev => ({
91+
variables: value,
92+
query: prev?.query || "",
93+
}));
3094
}}
31-
value={value}
95+
value={variablesValue}
3296
/>
3397
)}
3498
</>

components/Config/QuerySlide/InputPlace.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ export default function InputPlace({
8787
/>
8888
<button
8989
type="button"
90+
title="Delete"
9091
onClick={() => {
9192
removeField(keyName);
9293
setTimeout(() => {

components/Config/UrlInput.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ export default function UrlInput() {
101101
let { data: res } = await axios.get("/api/headerParser", {
102102
cancelToken: cancelControllerSource.current.token,
103103
params: {
104-
params: paramsObjectCopy,
105-
headers: headersObjectCopy,
106-
body: postBodyObjectCopy,
104+
params: JSON.stringify(paramsObjectCopy),
105+
headers: JSON.stringify(headersObjectCopy),
106+
body: JSON.stringify(postBodyObjectCopy),
107107
url: baseURL_with_env_vars,
108108
method: entries.method,
109109
},
@@ -174,6 +174,7 @@ export default function UrlInput() {
174174
data-place="bottom"
175175
data-tip={tooltipText}>
176176
<select
177+
title="Select a method"
177178
name="method"
178179
value={urlData.object.method}
179180
onChange={() => true}>

next.config.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@ const nextConfig = {
33
reactStrictMode: false,
44
};
55

6-
const withPWA = require("next-pwa");
6+
const withPWA = require("@ducanh2912/next-pwa").default({
7+
dest: "public",
8+
disable: process.env.NODE_ENV === "development",
9+
});
710

811
module.exports = withPWA({
9-
pwa: {
10-
dest: "public",
11-
disable: process.env.NODE_ENV === "development",
12-
},
1312
autoPrefixer: {},
1413
nextConfig,
1514
});

0 commit comments

Comments
 (0)