Skip to content

Commit 4e031c7

Browse files
committed
#203: Add tabs to UI, move CBA to separate tab, cleanup empty css rules
1 parent 0107661 commit 4e031c7

File tree

4 files changed

+72
-35
lines changed

4 files changed

+72
-35
lines changed

src/renderer/components/App.css

+2-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ body {
77
margin: 0;
88
padding: 0;
99
position: relative;
10-
background: #ffffff;
10+
background-color: #F4F4F5;
1111
font-size: 18px;
1212
font-family: gotham_rounded_medium, sans-serif;
1313
}
@@ -102,14 +102,12 @@ hr {
102102
letter-spacing: -0.02em;
103103
}
104104

105-
.App__header-title {
106-
}
107-
108105
.App__header-version {
109106
font-size: 60%;
110107
}
111108

112109
.App__body {
110+
height: 920px;
113111
}
114112

115113
.header-documentation-link {
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,41 @@
11
.Project {
22
position: relative;
3+
background: #ffffff;
4+
height: 100%;
35
}
4-
/*
5-
.Project__runtime {
6-
position: absolute;
7-
top: 0;
8-
left: 0;
9-
width: 100vw;
10-
height: 100vh;
11-
}
12-
*/
6+
137
.Project__selected-details {
148
position: absolute;
159
top: 130px;
1610
right: 20px;
1711
left: 635px;
1812
}
19-
.HelmetProject__control-group-separator {
13+
14+
.tab-list {
15+
display: flex;
16+
justify-content: flex-start;
17+
list-style: none;
18+
width: 100%;
19+
height: 5rem;
20+
background-color: #F4F4F5;
21+
}
22+
23+
.tab-list-item {
24+
width: 12rem;
25+
height: 2rem;
26+
display: flex;
27+
align-content: center;
28+
justify-content: center;
29+
color: lightgray;
30+
}
31+
32+
.tab-item-name {
33+
margin-top: 2rem;
2034
}
35+
36+
.selected-tab {
37+
background-color: white;
38+
height: 100%;
39+
color: #333333;
40+
border-radius: 1rem 1rem 0 0;
41+
}

src/renderer/components/HelmetProject/HelmetProject.jsx

+37-21
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { v4 as uuidv4 } from 'uuid';
33
import Store from "electron-store";
44
import fs from "fs";
55
import path from "path";
6+
import { Tab, Tabs, TabList, TabPanel } from 'react-tabs';
67

78
const {ipcRenderer} = require('electron');
89

@@ -383,27 +384,42 @@ const HelmetProject = ({
383384

384385
{/* Panel for primary view and controls */}
385386
<div className="Project__runtime">
386-
<Runtime
387-
projectPath={projectPath}
388-
reloadScenarios={() => _loadProjectScenarios(projectPath)}
389-
scenarios={scenarios}
390-
scenarioIDsToRun={scenarioIDsToRun}
391-
runningScenarioID={runningScenarioID}
392-
openScenarioID={openScenarioID}
393-
setOpenScenarioID={setOpenScenarioID}
394-
deleteScenario={(scenario) => {_deleteScenario(scenario)}}
395-
handleClickScenarioToActive={_handleClickScenarioToActive}
396-
handleClickNewScenario={_handleClickNewScenario}
397-
handleClickStartStop={_handleClickStartStop}
398-
logArgs={logArgs}
399-
duplicateScenario={duplicateScenario}
400-
/>
401-
<CostBenefitAnalysis
402-
resultsPath={resultsPath}
403-
cbaOptions={cbaOptions}
404-
setCbaOptions={setCbaOptions}
405-
runCbaScript={_runCbaScript}
406-
/>
387+
<Tabs className="tab-container">
388+
<TabList className="tab-list">
389+
<Tab selectedClassName="selected-tab" className="tab-list-item">
390+
<h4 className="tab-item-name">Scenarios</h4>
391+
</Tab>
392+
<Tab selectedClassName="selected-tab" className="tab-list-item">
393+
<h4 className="tab-item-name">CBA</h4>
394+
</Tab>
395+
</TabList>
396+
397+
<TabPanel>
398+
<Runtime
399+
projectPath={projectPath}
400+
reloadScenarios={() => _loadProjectScenarios(projectPath)}
401+
scenarios={scenarios}
402+
scenarioIDsToRun={scenarioIDsToRun}
403+
runningScenarioID={runningScenarioID}
404+
openScenarioID={openScenarioID}
405+
setOpenScenarioID={setOpenScenarioID}
406+
deleteScenario={(scenario) => {_deleteScenario(scenario)}}
407+
handleClickScenarioToActive={_handleClickScenarioToActive}
408+
handleClickNewScenario={_handleClickNewScenario}
409+
handleClickStartStop={_handleClickStartStop}
410+
logArgs={logArgs}
411+
duplicateScenario={duplicateScenario}
412+
/>
413+
</TabPanel>
414+
<TabPanel>
415+
<CostBenefitAnalysis
416+
resultsPath={resultsPath}
417+
cbaOptions={cbaOptions}
418+
setCbaOptions={setCbaOptions}
419+
runCbaScript={_runCbaScript}
420+
/>
421+
</TabPanel>
422+
</Tabs>
407423
</div>
408424

409425
{/* Panel for secondary view(s) and controls */}

src/renderer/index.html

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
<link rel="stylesheet" type="text/css" href="components/HelmetProject/RunLog/RunLog.css">
2828
<script type="text/babel" src="components/HelmetProject/CostBenefitAnalysis/CostBenefitAnalysis.jsx"></script>
2929
<link rel="stylesheet" type="text/css" href="components/HelmetProject/CostBenefitAnalysis/CostBenefitAnalysis.css">
30+
<link rel="stylesheet" type="text/css" href="react-tabs/style/react-tabs.css">
3031
<script type="text/javascript">
3132
// ipcRenderer is aliased, so that other <script> tag(s) won't crash on startup in "constant-already-set"
3233
const {webFrame, ipcRenderer: aliasIpcRenderer} = require('electron');
@@ -40,6 +41,7 @@
4041
<script type="text/babel" src="./icons/DocumentationIcon.jsx"></script>
4142
<script type="text/babel" src="./icons/ArrowDown.jsx"></script>
4243
<script type="text/babel" src="./icons/ArrowUp.jsx"></script>
44+
<script src="node_modules/electron-tabs/dist/electron-tabs.js"></script>
4345
</head>
4446
<body>
4547

0 commit comments

Comments
 (0)