From d37c261c707a299964b1d6029cb76cae2950cbf6 Mon Sep 17 00:00:00 2001 From: theocrsb Date: Thu, 12 Sep 2024 11:36:45 +0200 Subject: [PATCH] front: redesign top left of the scenario page Signed-off-by: theocrsb --- .../en/operationalStudies/scenario.json | 5 +- .../fr/operationalStudies/scenario.json | 5 +- .../components/MicroMacroSwitch.tsx | 37 ++- .../components/Scenario/InfraLoadingState.tsx | 2 +- .../Scenario/ScenarioDescription.tsx | 84 +++--- .../components/Timetable/Timetable.tsx | 24 +- front/src/styles/scss/_variables.scss | 13 + .../operationalStudies/_scenario.scss | 270 +++++++++++++----- .../common/components/_infraLoadingState.scss | 14 +- .../scss/common/components/_pathfinding.scss | 4 +- front/tests/pages/scenario-page-model.ts | 4 +- 11 files changed, 294 insertions(+), 168 deletions(-) diff --git a/front/public/locales/en/operationalStudies/scenario.json b/front/public/locales/en/operationalStudies/scenario.json index b004a31c81e..e18d7a6f31d 100644 --- a/front/public/locales/en/operationalStudies/scenario.json +++ b/front/public/locales/en/operationalStudies/scenario.json @@ -15,9 +15,10 @@ "filterPlaceholder": "Filter, tags", "advancedFiltersPlaceholder": "Filter by family, serie, detail", "infraLoadingState": "{{step}}/7", + "infrastructure": "Infrastructure", "lessDetails": "less details", - "macroscopic": "Macroscopic", - "microscopic": "Microscopic", + "macroscopic": "MACRO", + "microscopic": "MICRO", "modifyScenario": "Modify scenario", "moreDetails": "more details", "noElectricalProfileSet": "No electrical profile", diff --git a/front/public/locales/fr/operationalStudies/scenario.json b/front/public/locales/fr/operationalStudies/scenario.json index dd98452a4f1..81d59b958b7 100644 --- a/front/public/locales/fr/operationalStudies/scenario.json +++ b/front/public/locales/fr/operationalStudies/scenario.json @@ -14,9 +14,10 @@ }, "filterPlaceholder": "Filtre, étiquettes", "infraLoadingState": "{{step}}/7", + "infrastructure": "Infrastructure", "lessDetails": "moins de détails", - "macroscopic": "Macroscopique", - "microscopic": "Microscopique", + "macroscopic": "MACRO", + "microscopic": "MICRO", "modifyScenario": "Modifier le scénario", "moreDetails": "plus de détails", "noElectricalProfileSet": "Pas de profil électrique", diff --git a/front/src/applications/operationalStudies/components/MicroMacroSwitch.tsx b/front/src/applications/operationalStudies/components/MicroMacroSwitch.tsx index 837891da3e3..09dc9708cc6 100644 --- a/front/src/applications/operationalStudies/components/MicroMacroSwitch.tsx +++ b/front/src/applications/operationalStudies/components/MicroMacroSwitch.tsx @@ -9,25 +9,24 @@ type MicroMacroSwitchProps = { const MicroMacroSwitch = ({ isMacro, setIsMacro }: MicroMacroSwitchProps) => { const { t } = useTranslation('operationalStudies/scenario'); return ( -
-
-
setIsMacro(false)} - > - {t('microscopic')} -
-
setIsMacro(true)} - > - {t('macroscopic')} -
-
+
+ +
+
); }; diff --git a/front/src/applications/operationalStudies/components/Scenario/InfraLoadingState.tsx b/front/src/applications/operationalStudies/components/Scenario/InfraLoadingState.tsx index 7773ae8c8b6..c53d74d5940 100644 --- a/front/src/applications/operationalStudies/components/Scenario/InfraLoadingState.tsx +++ b/front/src/applications/operationalStudies/components/Scenario/InfraLoadingState.tsx @@ -29,7 +29,7 @@ export default function InfraLoadingState({ infra }: Props) { title={infra.state} > {infra.state && infra.state === 'CACHED' ? ( - + ) : ( <> diff --git a/front/src/applications/operationalStudies/components/Scenario/ScenarioDescription.tsx b/front/src/applications/operationalStudies/components/Scenario/ScenarioDescription.tsx index 89878243cac..b4f04e0c4e3 100644 --- a/front/src/applications/operationalStudies/components/Scenario/ScenarioDescription.tsx +++ b/front/src/applications/operationalStudies/components/Scenario/ScenarioDescription.tsx @@ -1,13 +1,12 @@ -import { ChevronLeft, Pencil } from '@osrd-project/ui-icons'; +import { Blocked, ChevronLeft, Pencil } from '@osrd-project/ui-icons'; import { useTranslation } from 'react-i18next'; -import { GiElectric } from 'react-icons/gi'; -import InfraLoadingState from 'applications/operationalStudies/components/Scenario/InfraLoadingState'; -import infraLogo from 'assets/pictures/components/tracks.svg'; import type { InfraWithState, ScenarioResponse } from 'common/api/osrdEditoastApi'; import { useModal } from 'common/BootstrapSNCF/ModalSNCF'; import AddAndEditScenarioModal from 'modules/scenario/components/AddOrEditScenarioModal'; +import InfraLoadingState from './InfraLoadingState'; + type ScenarioDescriptionProps = { scenario: ScenarioResponse; infra?: InfraWithState; @@ -25,14 +24,30 @@ const ScenarioDescription = ({ const { openModal } = useModal(); return ( -
+
{scenario.name} +
+ +
+ {scenario.description && ( +
{scenario.description}
+ )} +
+ +
-
-
-
-
- Infra logo - {infra && } - {scenario.infra_name} - ID {scenario.infra_id} -
-
-
-
- - - - {scenario.electrical_profile_set_id - ? scenario.electrical_profile_set_id - : t('noElectricalProfileSet')} -
-
+
+ {scenario.electrical_profile_set_id + ? scenario.electrical_profile_set_id + : t('noElectricalProfileSet')} +
+ +
+ {t('infrastructure')} :  + {infra && } +   + {scenario.infra_name} | ID + {scenario.infra_id}
{infra && infra.state === 'TRANSIENT_ERROR' && (infraReloadCount <= 5 ? ( -
- {t('errorMessages.unableToLoadInfra', { infraReloadCount })} +
+ + + {t('errorMessages.unableToLoadInfra', { infraReloadCount })} +
) : ( -
- {t('errorMessages.softErrorInfra')} +
+ + {t('errorMessages.softErrorInfra')}
))} {infra && infra.state === 'ERROR' && ( -
{t('errorMessages.hardErrorInfra')}
+
+ + {t('errorMessages.hardErrorInfra')} +
)} -
{scenario.description}
); }; diff --git a/front/src/modules/trainschedule/components/Timetable/Timetable.tsx b/front/src/modules/trainschedule/components/Timetable/Timetable.tsx index 89b1f493821..d79fca5a6fc 100644 --- a/front/src/modules/trainschedule/components/Timetable/Timetable.tsx +++ b/front/src/modules/trainschedule/components/Timetable/Timetable.tsx @@ -1,6 +1,5 @@ import { useMemo, useState } from 'react'; -import { Download, Plus } from '@osrd-project/ui-icons'; import cx from 'classnames'; import { compact } from 'lodash'; import { useTranslation } from 'react-i18next'; @@ -98,34 +97,25 @@ const Timetable = ({
- +