Skip to content

Commit 2ef3161

Browse files
Alban BaillyGitHub Enterprise
authored andcommitted
Merge pull request linode#2 from jkobos/refactor-components
Refactor a few files
2 parents fa282d7 + e777df5 commit 2ef3161

File tree

8 files changed

+570
-176
lines changed

8 files changed

+570
-176
lines changed

package-lock.json

Lines changed: 348 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"gatsby-transformer-sharp": "^2.1.13",
2323
"gatsby-transformer-yaml": "^2.1.8",
2424
"json-schema-ref-parser": "^6.1.0",
25+
"marked": "^0.6.1",
2526
"postcss-easy-import": "^3.0.0",
2627
"prop-types": "^15.6.2",
2728
"react": "^16.7.0",
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
import React from 'react';
2+
3+
export const ResponseItem = (props) => {
4+
const { response, r, m } = props;
5+
return (
6+
r && (
7+
<div>
8+
<p
9+
className={`text-lg p-2 ${
10+
response === "_200"
11+
? "bg-BaseGreenLight text-BaseGreen"
12+
: response === "default"
13+
? "bg-BaseRedLight text-BaseRed"
14+
: null
15+
}
16+
`}
17+
>
18+
<b>{response.replace(/[_]/g, " ")}</b>:&nbsp;
19+
{r.description}
20+
</p>
21+
<hr className="border border-BaseNavGrey" />
22+
<div>
23+
{r.content &&
24+
r.content.application_json &&
25+
r.content.application_json.schema &&
26+
r.content.application_json.schema.properties &&
27+
Object.keys(
28+
r.content.application_json.schema.properties
29+
).map((p, i) => {
30+
const l =
31+
r.content.application_json.schema
32+
.properties[p];
33+
// console.log(m);
34+
return (
35+
l && (
36+
<div key={i}>
37+
<div className="flex mb-4">
38+
<div className="w-1/4">
39+
<div>
40+
<b>{p}</b>
41+
</div>
42+
{m.requestBody &&
43+
m.requestBody.content &&
44+
m.requestBody.content
45+
.application_json &&
46+
m.requestBody.content
47+
.application_json.schema &&
48+
m.requestBody.content
49+
.application_json.schema
50+
.required &&
51+
m.requestBody.content.application_json.schema.required.map(
52+
(req, i) => {
53+
if (p === req) {
54+
return (
55+
<span
56+
key={i}
57+
className="text-BaseRed"
58+
>
59+
Required
60+
</span>
61+
);
62+
}
63+
return false;
64+
}
65+
)}
66+
</div>
67+
<div className="w-3/4">
68+
<div>
69+
{r.content.application_json.schema
70+
.properties.errors || l.items
71+
? "array of objects"
72+
: l.type}
73+
{l.type === "string" &&
74+
l.maxLength &&
75+
!l.minLength &&
76+
`${" "} ${
77+
l.maxLength
78+
}${" "}<= characters`}
79+
{l.type === "string" &&
80+
l.maxLength &&
81+
l.minLength &&
82+
`${" ["} ${
83+
l.minLength
84+
}${" .. "}${
85+
l.maxLength
86+
}${"] "} characters`}{" "}
87+
{l.pattern && l.pattern}
88+
</div>
89+
<div>
90+
<div>{l.description}</div>
91+
</div>
92+
{console.log(l)}
93+
</div>
94+
</div>
95+
{l.items && (
96+
<div className="py-2 px-4 bg-ThemeBeige mt-2 mb-4">
97+
{Object.keys(
98+
l.items.properties
99+
).map((e, i) => {
100+
const data =
101+
l.items.properties[e];
102+
return (
103+
data && (
104+
<div
105+
key={i}
106+
className="flex mb-4"
107+
>
108+
<div className="w-1/4">
109+
<b>{e}</b>
110+
</div>
111+
<div className="w-3/4">
112+
<div>
113+
<div>{data.type}</div>
114+
<div>
115+
{data.description}
116+
</div>
117+
</div>
118+
</div>
119+
</div>
120+
)
121+
);
122+
})}
123+
</div>
124+
)}
125+
</div>
126+
)
127+
);
128+
})}
129+
</div>
130+
</div>
131+
)
132+
);
133+
}
134+
135+
export default ResponseItem;
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import React from 'react';
2+
3+
import ResponseItem from "../../components/2_molecules/ResponseItem";
4+
5+
export const ResponseList = (props) => {
6+
const { responses, options, m } = props;
7+
return(
8+
<>
9+
<h3>Responses</h3>
10+
{Object.keys(responses).map((e, i) =>
11+
<ResponseItem response={options[e]} r={responses[options[e]]} m={m} key={i} />
12+
)}
13+
</>)
14+
}
15+
16+
export default ResponseList;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import React from 'react';
2+
3+
export const Security = (props) => {
4+
const { oauth } = props;
5+
return (
6+
<>
7+
<div className="mt-4">
8+
<b>Authorizations</b>
9+
</div>
10+
<div>personalAccessToken</div>
11+
<div>
12+
<span>oAuth:</span>
13+
<span>({ oauth })</span>
14+
</div>
15+
</>
16+
)
17+
}
18+
19+
export default Security;
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import React from 'react';
2+
3+
export const ParamDisplay = (props) => {
4+
const { param } = props;
5+
return (
6+
<div className="mb-4">
7+
<div className="flex">
8+
<div className="w-1/4">
9+
<b>{param.name}</b>
10+
</div>
11+
<div className="w-3/4">
12+
<div>
13+
<div>
14+
{param.schema.type}{" "}
15+
{param.schema.type === "integer" &&
16+
param.schema.minimum &&
17+
!param.schema.maximum &&
18+
`${" > = "} ${param.schema.minimum}`}
19+
{param.schema.type === "integer" &&
20+
param.schema.minimum &&
21+
param.schema.maximum &&
22+
`${" ["} ${
23+
param.schema.minimum
24+
}${" .. "}${param.schema.maximum}${"]"}`}
25+
</div>
26+
<div>Default: {param.schema.default}</div>
27+
<div>{param.description}</div>
28+
</div>
29+
</div>
30+
</div>
31+
</div>
32+
);
33+
}
34+
35+
export default ParamDisplay;

0 commit comments

Comments
 (0)