Skip to content

Commit ff49fe9

Browse files
committed
fix: Accordions now expand and collapse properly
1 parent af2bfe3 commit ff49fe9

File tree

2 files changed

+80
-36
lines changed

2 files changed

+80
-36
lines changed

src/projects-browser/Project.jsx

+79-35
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,13 @@ const Project = ({ project }) => {
1010
const resources = project.resources;
1111
const [showAlert, setShowAlert] = useState(false);
1212
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+
1420

1521
const formatNumber = (resource) => {
1622
let units = resource.units ? resource.units : resource.resourceUnits;
@@ -49,7 +55,7 @@ const Project = ({ project }) => {
4955

5056
const requestNumber = () => {
5157
if(project.requestNumber && project.requestNumber != '') return `(${project.requestNumber})`
52-
return <></>
58+
return "";
5359
}
5460

5561
const renderTooltip = (
@@ -110,6 +116,76 @@ const Project = ({ project }) => {
110116
return <>{project.beginDate} to {project.endDate}</>
111117
}
112118

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+
113189
return (
114190
<div className="card mb-4">
115191
<div className="card-header bg-primary text-white">
@@ -149,39 +225,7 @@ const Project = ({ project }) => {
149225
</div>
150226
</div>
151227

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() }
185229

186230
</div>
187231
</div>

src/projects-browser/helpers/browserSlice.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ export const browserSlice = createSlice({
101101
resource: '',
102102
requestNumber: ''
103103
}
104-
104+
state.singleEntry = false;
105105
browserSlice.caseReducers.toggleAllFos(state);
106106

107107
},

0 commit comments

Comments
 (0)