@@ -4,6 +4,7 @@ import { Tab, TabTitleText } from "@patternfly/react-core"
4
4
const BlockNotFound = lazy ( ( ) => import ( "./BlockNotFound" ) )
5
5
const DefContent = lazy ( ( ) => import ( "./DefContent" ) )
6
6
const UsageTabContent = lazy ( ( ) => import ( "./UsageTabContent" ) )
7
+ const ResultTabContent = lazy ( ( ) => import ( "./ResultTabContent" ) )
7
8
const SourceTabContent = lazy ( ( ) => import ( "./SourceTabContent" ) )
8
9
const ContextTabContent = lazy ( ( ) => import ( "./ContextTabContent" ) )
9
10
const SummaryTabContent = lazy ( ( ) => import ( "./SummaryTabContent" ) )
@@ -16,52 +17,6 @@ import {
16
17
type NonScalarPdlBlock as Model ,
17
18
} from "../../helpers"
18
19
19
- function blockBody ( block : Model ) {
20
- const tabs = [
21
- < Tab key = { 0 } eventKey = { 0 } title = { < TabTitleText > Summary</ TabTitleText > } >
22
- < Suspense >
23
- < SummaryTabContent block = { block } />
24
- </ Suspense >
25
- </ Tab > ,
26
- < Tab key = { 1 } eventKey = { 1 } title = { < TabTitleText > Source</ TabTitleText > } >
27
- < Suspense >
28
- < SourceTabContent block = { block } />
29
- </ Suspense >
30
- </ Tab > ,
31
- < Tab key = { 2 } eventKey = { 2 } title = { < TabTitleText > Trace</ TabTitleText > } >
32
- < Suspense >
33
- < RawTraceTabContent block = { block } />
34
- </ Suspense >
35
- </ Tab > ,
36
- ]
37
-
38
- if ( hasContextInformation ( block ) ) {
39
- tabs . splice (
40
- 1 ,
41
- 0 ,
42
- < Tab key = { 3 } eventKey = { 3 } title = { < TabTitleText > Messages</ TabTitleText > } >
43
- < Suspense >
44
- < ContextTabContent block = { block } />
45
- </ Suspense >
46
- </ Tab > ,
47
- )
48
- }
49
-
50
- if ( hasModelUsage ( block ) ) {
51
- tabs . splice (
52
- 1 ,
53
- 0 ,
54
- < Tab key = { 4 } eventKey = { 4 } title = { < TabTitleText > Usage</ TabTitleText > } >
55
- < Suspense >
56
- < UsageTabContent block = { block } />
57
- </ Suspense >
58
- </ Tab > ,
59
- )
60
- }
61
-
62
- return tabs
63
- }
64
-
65
20
type Props = {
66
21
id : string | null
67
22
value : string
@@ -74,26 +29,99 @@ export default function DrawerContentBody({
74
29
id,
75
30
value,
76
31
objectType,
77
- model,
32
+ model : block ,
78
33
} : Props ) {
79
- if ( ! model ) {
80
- return (
81
- < Suspense fallback = { < div /> } >
82
- < BlockNotFound pdl__id = { id } value = { value } />
83
- </ Suspense >
84
- )
34
+ if ( ! block ) {
35
+ return [
36
+ < Tab eventKey = { 0 } title = { < TabTitleText > Error</ TabTitleText > } >
37
+ < Suspense fallback = { < div /> } >
38
+ < BlockNotFound pdl__id = { id } value = { value } />
39
+ </ Suspense >
40
+ </ Tab > ,
41
+ ]
85
42
}
86
43
87
44
switch ( objectType ) {
88
45
case "def" : {
89
- const value = hasResult ( model ) ? model . pdl__result : undefined
90
- return (
46
+ const value = hasResult ( block ) ? block . pdl__result : undefined
47
+ return [
91
48
< Tab eventKey = { 0 } title = { < TabTitleText > Value</ TabTitleText > } >
92
49
{ ! value ? "Value not found" : < DefContent value = { value } /> }
93
- </ Tab >
94
- )
50
+ </ Tab > ,
51
+ ]
52
+ }
53
+
54
+ default : {
55
+ // some blocks have nothing interesting to show other than their result
56
+ const hasSummary = ! ( block . kind === "data" || block . kind === "code" )
57
+
58
+ return [
59
+ ...( ! hasSummary
60
+ ? [ ]
61
+ : [
62
+ < Tab
63
+ key = { 0 }
64
+ eventKey = { 0 }
65
+ title = { < TabTitleText > Summary</ TabTitleText > }
66
+ >
67
+ < Suspense >
68
+ < SummaryTabContent block = { block } />
69
+ </ Suspense >
70
+ </ Tab > ,
71
+ ] ) ,
72
+
73
+ ...( ! hasContextInformation ( block )
74
+ ? [ ]
75
+ : [
76
+ < Tab
77
+ key = { 3 }
78
+ eventKey = { 3 }
79
+ title = { < TabTitleText > Messages</ TabTitleText > }
80
+ >
81
+ < Suspense >
82
+ < ContextTabContent block = { block } />
83
+ </ Suspense >
84
+ </ Tab > ,
85
+ ] ) ,
86
+
87
+ ...( ! hasResult ( block )
88
+ ? [ ]
89
+ : [
90
+ < Tab
91
+ key = "result"
92
+ eventKey = "result"
93
+ title = { < TabTitleText > Result</ TabTitleText > }
94
+ >
95
+ < Suspense >
96
+ < ResultTabContent block = { block } />
97
+ </ Suspense >
98
+ </ Tab > ,
99
+ ] ) ,
100
+
101
+ ...( ! hasModelUsage ( block )
102
+ ? [ ]
103
+ : [
104
+ < Tab
105
+ key = { 4 }
106
+ eventKey = { 4 }
107
+ title = { < TabTitleText > Usage</ TabTitleText > }
108
+ >
109
+ < Suspense >
110
+ < UsageTabContent block = { block } />
111
+ </ Suspense >
112
+ </ Tab > ,
113
+ ] ) ,
114
+ < Tab key = { 1 } eventKey = { 1 } title = { < TabTitleText > Source</ TabTitleText > } >
115
+ < Suspense >
116
+ < SourceTabContent block = { block } />
117
+ </ Suspense >
118
+ </ Tab > ,
119
+ < Tab key = { 2 } eventKey = { 2 } title = { < TabTitleText > Trace</ TabTitleText > } >
120
+ < Suspense >
121
+ < RawTraceTabContent block = { block } />
122
+ </ Suspense >
123
+ </ Tab > ,
124
+ ]
95
125
}
96
- default :
97
- return blockBody ( model )
98
126
}
99
127
}
0 commit comments