@@ -10,7 +10,13 @@ const Project = ({ project }) => {
10
10
const resources = project . resources ;
11
11
const [ showAlert , setShowAlert ] = useState ( false ) ;
12
12
const singleEntry = useSelector ( selectIsSingleEntry ) ;
13
- const defaultActiveKeys = singleEntry ? [ '0' , '1' ] : [ ] ;
13
+
14
+ let accordionProps = {
15
+ flush : true ,
16
+ className : "mt-3 mb-1" ,
17
+ alwaysOpen : true
18
+ }
19
+
14
20
15
21
const formatNumber = ( resource ) => {
16
22
let units = resource . units ? resource . units : resource . resourceUnits ;
@@ -49,7 +55,7 @@ const Project = ({ project }) => {
49
55
50
56
const requestNumber = ( ) => {
51
57
if ( project . requestNumber && project . requestNumber != '' ) return `(${ project . requestNumber } )`
52
- return < > </ >
58
+ return "" ;
53
59
}
54
60
55
61
const renderTooltip = (
@@ -110,6 +116,76 @@ const Project = ({ project }) => {
110
116
return < > { project . beginDate } to { project . endDate } </ >
111
117
}
112
118
119
+ const resourceList = (
120
+ < table className = "table table-striped table-bordered mt-2 mb-0" >
121
+ < thead >
122
+ < tr >
123
+ < td > < span className = "m-0 p-0" > Resource</ span > </ td >
124
+ < td > < span className = "m-0 p-0 d-inline" > Allocation</ span > </ td >
125
+ </ tr >
126
+ </ thead >
127
+ < tbody >
128
+ { resources . map ( ( r , i ) =>
129
+ < tr key = { `resource_${ project . requestId } _${ i } ` } >
130
+ < td > { r . resourceName } </ td >
131
+ < td style = { { whiteSpace : 'nowrap' } } > { formatNumber ( r ) } </ td >
132
+ </ tr >
133
+ ) }
134
+ </ tbody >
135
+ </ table >
136
+ )
137
+
138
+ const projectContent = ( ) => {
139
+
140
+ if ( singleEntry ) {
141
+ return (
142
+ < >
143
+ < div className = "row mt-2 fw-bold" >
144
+ < div className = "col-3 border-bottom" >
145
+ Resources
146
+ </ div >
147
+ </ div >
148
+ < div className = "row" >
149
+ < div className = "col" >
150
+ { resourceList }
151
+ </ div >
152
+ </ div >
153
+ < div className = "row mt-2 fw-bold" >
154
+ < div className = "col-3 border-bottom" >
155
+ Abstract
156
+ </ div >
157
+ </ div >
158
+ < div className = "row" >
159
+ < div className = "col" >
160
+ < div style = { { whiteSpace : "pre-wrap" , padding : "5px" } } > { project . abstract } </ div >
161
+ </ div >
162
+ </ div >
163
+ </ >
164
+ )
165
+ }
166
+
167
+ return (
168
+ < Accordion { ...accordionProps } >
169
+ < Accordion . Item eventKey = "0" >
170
+ < Accordion . Header >
171
+ Resources
172
+ </ Accordion . Header >
173
+ < Accordion . Body >
174
+ { resourceList }
175
+ </ Accordion . Body >
176
+ </ Accordion . Item >
177
+ < Accordion . Item eventKey = "1" >
178
+ < Accordion . Header >
179
+ Abstract
180
+ </ Accordion . Header >
181
+ < Accordion . Body >
182
+ < div style = { { whiteSpace : "pre-wrap" , padding : "5px" } } > { project . abstract } </ div >
183
+ </ Accordion . Body >
184
+ </ Accordion . Item >
185
+ </ Accordion >
186
+ )
187
+ }
188
+
113
189
return (
114
190
< div className = "card mb-4" >
115
191
< div className = "card-header bg-primary text-white" >
@@ -149,39 +225,7 @@ const Project = ({ project }) => {
149
225
</ div >
150
226
</ div >
151
227
152
- < Accordion defaultActiveKey = { defaultActiveKeys } activeKey = { defaultActiveKeys } flush className = "mt-3 mb-1" alwaysOpen >
153
- < Accordion . Item eventKey = "0" >
154
- < Accordion . Header >
155
- Resources
156
- </ Accordion . Header >
157
- < Accordion . Body >
158
- < table className = "table table-striped table-bordered mt-2 mb-0" >
159
- < thead >
160
- < tr >
161
- < td > < span className = "m-0 p-0" > Resource</ span > </ td >
162
- < td > < span className = "m-0 p-0 d-inline" > Allocation</ span > </ td >
163
- </ tr >
164
- </ thead >
165
- < tbody >
166
- { resources . map ( ( r , i ) =>
167
- < tr key = { `resource_${ project . requestId } _${ i } ` } >
168
- < td > { r . resourceName } </ td >
169
- < td style = { { whiteSpace : 'nowrap' } } > { formatNumber ( r ) } </ td >
170
- </ tr >
171
- ) }
172
- </ tbody >
173
- </ table >
174
- </ Accordion . Body >
175
- </ Accordion . Item >
176
- < Accordion . Item eventKey = "1" >
177
- < Accordion . Header >
178
- Abstract
179
- </ Accordion . Header >
180
- < Accordion . Body >
181
- < div style = { { whiteSpace : "pre-wrap" , padding : "5px" } } > { project . abstract } </ div >
182
- </ Accordion . Body >
183
- </ Accordion . Item >
184
- </ Accordion >
228
+ { projectContent ( ) }
185
229
186
230
</ div >
187
231
</ div >
0 commit comments