@@ -14,65 +14,87 @@ export const BodySchema = props => {
14
14
{ data . requestBody . content . application_json &&
15
15
data . requestBody . content . application_json . schema &&
16
16
data . requestBody . content . application_json . schema . properties &&
17
- Object . keys (
18
- data . requestBody . content . application_json . schema . properties
19
- ) . map ( ( p , i ) => {
20
- const b =
21
- data . requestBody . content . application_json . schema . properties [ p ] ;
22
- return (
23
- b &&
24
- b . readOnly !== true && (
25
- < div key = { i } className = "response-wrapper" >
26
- < div className = "lg:flex mb-4 pt-2 initResponse" >
27
- < div className = "w-full lg:w-1/4" >
28
- < div >
29
- < b className = { b . deprecated && "line-through" } > { p } </ b >
30
- </ div >
31
- < div className = "leading-xs" >
32
- { data . requestBody . content . application_json . schema
33
- . required &&
34
- data . requestBody . content . application_json . schema . required . map (
35
- ( req , i ) => {
36
- if ( p === req ) {
37
- return (
38
- < span className = "text-BaseRed text-sm" key = { i } >
39
- Required
40
- </ span >
41
- ) ;
42
- }
43
- return false ;
44
- }
45
- ) }
46
- </ div >
47
- { b . x_linode_filterable && (
17
+ Object . keys ( data . requestBody . content . application_json . schema . properties )
18
+ . sort ( ( a , b ) => {
19
+ const required =
20
+ data . requestBody . content . application_json . schema . required || [ ] ;
21
+ const r1 = required . includes ( a ) ? 1 : 0 ;
22
+ const r2 = required . includes ( b ) ? 1 : 0 ;
23
+ // sorting and adding required fields at the top
24
+ if ( r1 > r2 ) {
25
+ return - 1 ;
26
+ }
27
+ if ( r1 < r2 ) {
28
+ return 1 ;
29
+ }
30
+ if ( a > b ) {
31
+ return 1 ;
32
+ }
33
+ if ( a < b ) {
34
+ return - 1 ;
35
+ }
36
+ return 0 ;
37
+ } )
38
+ . map ( ( p , i ) => {
39
+ const b =
40
+ data . requestBody . content . application_json . schema . properties [ p ] ;
41
+ return (
42
+ b &&
43
+ b . readOnly !== true && (
44
+ < div key = { i } className = "response-wrapper" >
45
+ < div className = "lg:flex mb-4 pt-2 initResponse" >
46
+ < div className = "w-full lg:w-1/4" >
47
+ < div >
48
+ < b className = { b . deprecated && "line-through" } > { p } </ b >
49
+ </ div >
48
50
< div className = "leading-xs" >
49
- < span className = "text-grey-dark text-sm" >
50
- Filterable
51
- </ span >
51
+ { data . requestBody . content . application_json . schema
52
+ . required &&
53
+ data . requestBody . content . application_json . schema . required . map (
54
+ ( req , i ) => {
55
+ if ( p === req ) {
56
+ return (
57
+ < span
58
+ className = "text-BaseRed text-sm"
59
+ key = { i }
60
+ >
61
+ Required
62
+ </ span >
63
+ ) ;
64
+ }
65
+ return false ;
66
+ }
67
+ ) }
52
68
</ div >
53
- ) }
54
- </ div >
55
- < div className = "w-full lg:w-3/4" >
56
- < div className = "text-sm leading-text-sm text-grey-darkest" >
57
- { b . type } < CharDisplay data = { b } />
58
- { b . pattern && < span className = "tag" > { b . pattern } </ span > }
69
+ { b . x_linode_filterable && (
70
+ < div className = "leading-xs mt-1" >
71
+ < span className = "text-grey-dark text-sm" >
72
+ Filterable
73
+ </ span >
74
+ </ div >
75
+ ) }
59
76
</ div >
60
- { b . deprecated && (
61
- < div >
62
- < span className = "tag tag-deprecated" > Deprecated</ span >
77
+ < div className = "w-full lg:w-3/4" >
78
+ < div className = "text-sm leading-text-sm text-grey-darkest" >
79
+ { b . type } < CharDisplay data = { b } />
80
+ { b . pattern && < span className = "tag" > { b . pattern } </ span > }
63
81
</ div >
64
- ) }
65
- < Markdown
66
- source = { b . description }
67
- escapeHtml = { false }
68
- className = "api-desc"
69
- />
82
+ { b . deprecated && (
83
+ < div >
84
+ < span className = "tag tag-deprecated" > Deprecated</ span >
85
+ </ div >
86
+ ) }
87
+ < Markdown
88
+ source = { b . description }
89
+ escapeHtml = { false }
90
+ className = "api-desc"
91
+ />
92
+ </ div >
70
93
</ div >
71
94
</ div >
72
- </ div >
73
- )
74
- ) ;
75
- } ) }
95
+ )
96
+ ) ;
97
+ } ) }
76
98
{ data . requestBody . content . application_json &&
77
99
data . requestBody . content . application_json . schema &&
78
100
data . requestBody . content . application_json . schema . allOf &&
0 commit comments