Skip to content

Commit aba32b0

Browse files
committed
front: display timetable in macro mode, add styles for macro container
1 parent 9fcc16d commit aba32b0

File tree

3 files changed

+46
-32
lines changed

3 files changed

+46
-32
lines changed

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

+22-16
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ const ScenarioContent = ({
5252
const [collapsedTimetable, setCollapsedTimetable] = useState(false);
5353
const [trainIdToEdit, setTrainIdToEdit] = useState<number>();
5454
const [isMacro, setIsMacro] = useState(false);
55-
5655
const {
5756
selectedTrainId,
5857
trainScheduleSummaries,
@@ -67,9 +66,11 @@ const ScenarioContent = ({
6766
const toggleMicroMacroButton = useCallback(
6867
(isMacroMode: boolean) => {
6968
setIsMacro(isMacroMode);
70-
setCollapsedTimetable(isMacroMode);
69+
if (!isMacroMode && collapsedTimetable) {
70+
setCollapsedTimetable(false);
71+
}
7172
},
72-
[setIsMacro, setCollapsedTimetable]
73+
[setIsMacro, setCollapsedTimetable, collapsedTimetable]
7374
);
7475

7576
const [ngeDto, setNgeDto] = useState<NetzgrafikDto>();
@@ -134,8 +135,10 @@ const ScenarioContent = ({
134135
infraReloadCount={reloadCount}
135136
collapseTimetable={() => setCollapsedTimetable(true)}
136137
/>
138+
137139
<MicroMacroSwitch isMacro={isMacro} setIsMacro={toggleMicroMacroButton} />
138-
{!isMacro && infra && (
140+
141+
{infra && (
139142
<>
140143
{displayTrainScheduleManagement !== MANAGE_TRAIN_SCHEDULE_TYPES.none && (
141144
<TimetableManageTrainSchedule
@@ -165,6 +168,17 @@ const ScenarioContent = ({
165168
</div>
166169

167170
<div className={collapsedTimetable ? 'col-12' : 'col-hdp-9 col-xl-8 col-lg-7 col-md-6'}>
171+
{collapsedTimetable && (
172+
<button
173+
data-testid="timetable-collapse-button"
174+
className="timetable-collapse-button"
175+
type="button"
176+
aria-label={t('toggleTimetable')}
177+
onClick={() => setCollapsedTimetable(false)}
178+
>
179+
<ChevronRight />
180+
</button>
181+
)}
168182
{!isInfraLoaded &&
169183
!isMacro &&
170184
displayTrainScheduleManagement !== MANAGE_TRAIN_SCHEDULE_TYPES.add &&
@@ -188,16 +202,9 @@ const ScenarioContent = ({
188202
<div className="scenario-results">
189203
{collapsedTimetable && (
190204
<>
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>
205+
<div
206+
className={cx('scenario-timetable-collapsed', { 'd-none': collapsedTimetable })}
207+
>
201208
<div className="lead ml-2">{scenario.name}</div>
202209
<div className="d-flex align-items-center ml-auto">
203210
<img src={infraLogo} alt="Infra logo" className="infra-logo mr-2" />
@@ -212,11 +219,10 @@ const ScenarioContent = ({
212219
: t('noElectricalProfileSet')}
213220
</div>
214221
</div>
215-
<MicroMacroSwitch isMacro={isMacro} setIsMacro={toggleMicroMacroButton} />
216222
</>
217223
)}
218224
{isMacro ? (
219-
<div className={cx(collapsedTimetable ? 'macro-container' : 'h-100')}>
225+
<div className={cx(collapsedTimetable ? 'macro-container' : 'h-100 p-1')}>
220226
<NGE dto={ngeDto} onOperation={handleNGEOperation} />
221227
</div>
222228
) : (
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)