Skip to content

Commit 991635e

Browse files
committed
front: display timetable in macro mode, add styles for macro container
Signed-off-by: romainvalls <romain.valls95@gmail.com>
1 parent d9369b0 commit 991635e

File tree

3 files changed

+43
-52
lines changed

3 files changed

+43
-52
lines changed

front/src/applications/operationalStudies/components/Scenario/ScenarioContent.tsx

+19-36
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { useState, useEffect, useCallback } from 'react';
33
import { ChevronRight } from '@osrd-project/ui-icons';
44
import cx from 'classnames';
55
import { useTranslation } from 'react-i18next';
6-
import { GiElectric } from 'react-icons/gi';
76

87
import handleOperation from 'applications/operationalStudies/components/MacroEditor/ngeToOsrd';
98
import importTimetableToNGE from 'applications/operationalStudies/components/MacroEditor/osrdToNge';
@@ -15,7 +14,6 @@ import useScenarioData from 'applications/operationalStudies/hooks/useScenarioDa
1514
import ImportTrainSchedule from 'applications/operationalStudies/views/ImportTrainSchedule';
1615
import ManageTrainSchedule from 'applications/operationalStudies/views/ManageTrainSchedule';
1716
import SimulationResults from 'applications/operationalStudies/views/SimulationResults';
18-
import infraLogo from 'assets/pictures/components/tracks.svg';
1917
import type {
2018
InfraWithState,
2119
ScenarioResponse,
@@ -52,7 +50,6 @@ const ScenarioContent = ({
5250
const [collapsedTimetable, setCollapsedTimetable] = useState(false);
5351
const [trainIdToEdit, setTrainIdToEdit] = useState<number>();
5452
const [isMacro, setIsMacro] = useState(false);
55-
5653
const {
5754
selectedTrainId,
5855
trainScheduleSummaries,
@@ -67,9 +64,11 @@ const ScenarioContent = ({
6764
const toggleMicroMacroButton = useCallback(
6865
(isMacroMode: boolean) => {
6966
setIsMacro(isMacroMode);
70-
setCollapsedTimetable(isMacroMode);
67+
if (!isMacroMode && collapsedTimetable) {
68+
setCollapsedTimetable(false);
69+
}
7170
},
72-
[setIsMacro, setCollapsedTimetable]
71+
[setIsMacro, setCollapsedTimetable, collapsedTimetable]
7372
);
7473

7574
const [ngeDto, setNgeDto] = useState<NetzgrafikDto>();
@@ -134,8 +133,10 @@ const ScenarioContent = ({
134133
infraReloadCount={reloadCount}
135134
collapseTimetable={() => setCollapsedTimetable(true)}
136135
/>
136+
137137
<MicroMacroSwitch isMacro={isMacro} setIsMacro={toggleMicroMacroButton} />
138-
{!isMacro && infra && (
138+
139+
{infra && (
139140
<>
140141
{displayTrainScheduleManagement !== MANAGE_TRAIN_SCHEDULE_TYPES.none && (
141142
<TimetableManageTrainSchedule
@@ -165,6 +166,17 @@ const ScenarioContent = ({
165166
</div>
166167

167168
<div className={collapsedTimetable ? 'col-12' : 'col-hdp-9 col-xl-8 col-lg-7 col-md-6'}>
169+
{collapsedTimetable && (
170+
<button
171+
data-testid="timetable-collapse-button"
172+
className="timetable-collapse-button"
173+
type="button"
174+
aria-label={t('toggleTimetable')}
175+
onClick={() => setCollapsedTimetable(false)}
176+
>
177+
<ChevronRight />
178+
</button>
179+
)}
168180
{!isInfraLoaded &&
169181
!isMacro &&
170182
displayTrainScheduleManagement !== MANAGE_TRAIN_SCHEDULE_TYPES.add &&
@@ -186,37 +198,8 @@ const ScenarioContent = ({
186198
</div>
187199
)}
188200
<div className="scenario-results">
189-
{collapsedTimetable && (
190-
<>
191-
<div className="scenario-timetable-collapsed">
192-
<button
193-
data-testid="timetable-collapse-button"
194-
className="timetable-collapse-button"
195-
type="button"
196-
aria-label={t('toggleTimetable')}
197-
onClick={() => setCollapsedTimetable(false)}
198-
>
199-
<ChevronRight />
200-
</button>
201-
<div className="lead ml-2">{scenario.name}</div>
202-
<div className="d-flex align-items-center ml-auto">
203-
<img src={infraLogo} alt="Infra logo" className="infra-logo mr-2" />
204-
{scenario.infra_name}
205-
</div>
206-
<div className="d-flex align-items-center ml-4">
207-
<span className="mr-1">
208-
<GiElectric />
209-
</span>
210-
{scenario.electrical_profile_set_id
211-
? scenario.electrical_profile_set_id
212-
: t('noElectricalProfileSet')}
213-
</div>
214-
</div>
215-
<MicroMacroSwitch isMacro={isMacro} setIsMacro={toggleMicroMacroButton} />
216-
</>
217-
)}
218201
{isMacro ? (
219-
<div className={cx(collapsedTimetable ? 'macro-container' : 'h-100')}>
202+
<div className={cx(collapsedTimetable ? 'macro-container' : 'h-100 p-1')}>
220203
<NGE dto={ngeDto} onOperation={handleNGEOperation} />
221204
</div>
222205
) : (
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
.nge-iframe-container {
22
width: 100%;
33
height: 100%;
4-
border: 1px solid pink;
4+
border-radius: 10px;
5+
box-shadow:
6+
-4px 0 8px var(--coolgray1),
7+
4px 0 8px var(--coolgray1),
8+
0 2px 8px var(--coolgray13);
59
}

front/src/styles/scss/applications/operationalStudies/_scenario.scss

+19-15
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
font-family: 'IBM Plex Sans';
77
.scenario-container {
88
margin: 0;
9+
position: relative;
910
}
1011

1112
@keyframes fadein {
@@ -18,6 +19,21 @@
1819
}
1920
}
2021

22+
.timetable-collapse-button {
23+
position: absolute;
24+
left: 0;
25+
top: 38px;
26+
padding-bottom: 3px;
27+
padding-inline: 4px 12px;
28+
height: 34px;
29+
width: 24px;
30+
color: var(--grey40);
31+
background-color: var(--white100);
32+
border-radius: 0px 5px 5px 0px;
33+
box-shadow: 0 0 0 1px var(--black10);
34+
clip-path: inset(-1px -1px -1px 1px);
35+
z-index: 2;
36+
}
2137
.micro-macro-buttons {
2238
button {
2339
color: var(--grey60);
@@ -68,19 +84,6 @@
6884
padding-bottom: 8px;
6985
z-index: 1;
7086
background-color: var(--coolgray1);
71-
.timetable-collapse-button {
72-
display: flex;
73-
align-items: center;
74-
position: relative;
75-
top: 0;
76-
left: 0;
77-
background-color: var(--secondary);
78-
color: var(--white100);
79-
border: unset;
80-
border-radius: 4px;
81-
padding: 8px;
82-
z-index: 2;
83-
}
8487
}
8588

8689
.scenario-timetable-managetrainschedule {
@@ -823,14 +826,15 @@
823826

824827
.scenario-results {
825828
padding-top: 8px;
829+
padding-left: 24px;
826830
position: relative;
827831
overflow: auto;
828832
width: 100%;
829833
height: var(--content-height);
830834
}
831835

832836
.macro-container {
833-
// the value subtracted is egal to the height of scenario-timetable-collapsed + micro-macro-buttons + scenario-results padding
834-
height: calc(var(--content-height) - 156px);
837+
height: calc(var(--content-height) - 20px);
838+
padding-right: 10px;
835839
}
836840
}

0 commit comments

Comments
 (0)