From ba692fc1f328b0e042ec545e67b4063b6e33ba19 Mon Sep 17 00:00:00 2001 From: Bastien DUMONT <bdumont@grandlyon.com> Date: Wed, 1 Feb 2023 13:26:11 +0000 Subject: [PATCH] fix: rename Enedis SGE -> Enedis --- .../Connection/ConnectionResult.tsx | 259 ++++++++++++------ src/locales/fr.json | 1 + 2 files changed, 174 insertions(+), 86 deletions(-) diff --git a/src/components/Connection/ConnectionResult.tsx b/src/components/Connection/ConnectionResult.tsx index 60740d100..f4fa59af7 100644 --- a/src/components/Connection/ConnectionResult.tsx +++ b/src/components/Connection/ConnectionResult.tsx @@ -165,6 +165,17 @@ const ConnectionResult: React.FC<ConnectionResultProps> = ({ } }, [fluidStatus.connection.triggerState, isOutdated]) + const getFluidTypeTranslation = (fluidType: FluidType) => { + switch (fluidType) { + case FluidType.GAS: + return 'de gaz' + case FluidType.ELECTRICITY: + return "d'électricité" + default: + return "d'eau" + } + } + return ( <div className="connection-update-result"> <div @@ -185,93 +196,21 @@ const ConnectionResult: React.FC<ConnectionResultProps> = ({ </div> ) : status === 'errored' ? ( // Else check if konnector is in error state - <div className="connection-caption-errored warning-white text-16-normal"> - <StyledIcon - icon={warningWhite} - size={36} - className="warning-icon" - role="img" - title="Attention" - ariaHidden={false} - /> - {konnectorError === 'login_failed' ? ( - <div className="text-16-normal"> - {t('konnector_form.login_failed')} - </div> - ) : ( - <div className="text-16-normal"> - {t(`konnector_form.${konnectorError}`, { - fluid: - fluidType === FluidType.GAS - ? 'de gaz' - : fluidType === FluidType.ELECTRICITY - ? "d'électricité" - : "d'eau", - })} - {konnectorError !== 'error_update_oauth' && ( - <> - <div className="connection-caption"> - {t('konnector_form.label_updated_at')} - </div> - <div className="text-16-bold"> - {lastExecutionDate.toLocaleString()} - </div> - </> - )} - </div> - )} - </div> + <DisplayKonnectorErrorState + konnectorError={konnectorError} + lastExecutionDate={lastExecutionDate} + fluidConcerned={getFluidTypeTranslation(fluidType)} + /> ) : outDatedDataDays ? ( // Else check if data is outdated - <div className="connection-caption text-16-normal"> - <div className="text-16-normal"> - <> - {hasUpdatedToday() === true ? ( - // If user has already ran an update today, display a message about energy provider issue - <> - <div className="connection-caption"> - {t('konnector_form.label_updated_at')} - </div> - <div className="text-16-bold"> - {lastExecutionDate.toLocaleString()} - </div> - <div> - {fluidStatus?.connection?.konnector && - t('konnector_form.issue') + - ' ' + - fluidStatus.connection.konnector.name + - '.'} - </div> - </> - ) : ( - // Otherwise tells user to run a manual update - <div className="connection-caption-errored connection-update-errored warning-white text-16-normal"> - <StyledIcon - icon={warningWhite} - size={36} - className="warning-icon" - role="img" - title="Attention" - ariaHidden={false} - /> - <div className="text-16-normal"> - {t('konnector_form.resolve')} - </div> - </div> - )} - </> - </div> - </div> + <DisplayDataOutdated + fluidStatus={fluidStatus} + fluidType={fluidType} + lastExecutionDate={lastExecutionDate} + hasUpdatedToday={hasUpdatedToday()} + /> ) : ( - //If no partner error nor konnector error, display the last update date - <div> - <div className="connection-caption text-16-normal"> - {t('konnector_form.label_updated_at')} - </div> - <div className="text-16-bold"> - {lastExecutionDate.toLocaleString()} - </div> - </div> + <DisplayLastUpdateDate lastExecutionDate={lastExecutionDate} /> )} </div> <div className="inline-buttons"> @@ -288,8 +227,9 @@ const ConnectionResult: React.FC<ConnectionResultProps> = ({ label: 'text-16-normal', }} > - {deleting && <Loader fluidType={fluidType} />} - {!deleting && t('konnector_form.button_delete')} + {deleting + ? t('konnector_form.loading') + : t('konnector_form.button_delete')} </Button> <Button aria-label={t('konnector_form.accessibility.button_update')} @@ -325,4 +265,151 @@ const ConnectionResult: React.FC<ConnectionResultProps> = ({ ) } +const DisplayKonnectorErrorState = ({ + konnectorError, + lastExecutionDate, + fluidConcerned, +}: { + konnectorError: string + lastExecutionDate: string | DateTime + fluidConcerned: string +}) => { + const { t } = useI18n() + return ( + <div className="connection-caption-errored warning-white text-16-normal"> + <StyledIcon + icon={warningWhite} + size={36} + className="warning-icon" + role="img" + title="Attention" + ariaHidden={false} + /> + {konnectorError === 'login_failed' ? ( + <div className="text-16-normal">{t('konnector_form.login_failed')}</div> + ) : ( + <div className="text-16-normal"> + {t(`konnector_form.${konnectorError}`, { + fluid: fluidConcerned, + })} + {konnectorError !== 'error_update_oauth' && ( + <> + <div className="connection-caption"> + {t('konnector_form.label_updated_at')} + </div> + <div className="text-16-bold"> + {lastExecutionDate.toLocaleString()} + </div> + </> + )} + </div> + )} + </div> + ) +} + +const DisplayDataOutdated = ({ + fluidStatus, + fluidType, + lastExecutionDate, + hasUpdatedToday, +}: { + fluidStatus: FluidStatus + fluidType: FluidType + lastExecutionDate: string | DateTime + hasUpdatedToday: boolean +}) => { + return ( + <div className="connection-caption text-16-normal"> + <div className="text-16-normal"> + <> + {hasUpdatedToday ? ( + // If user has already ran an update today, display a message about energy provider issue + <DisplayAlreadyUpdatedToday + fluidStatus={fluidStatus} + fluidType={fluidType} + lastExecutionDate={lastExecutionDate.toLocaleString()} + /> + ) : ( + <DisplayManualUpdate /> + )} + </> + </div> + </div> + ) +} + +/** If user has already ran an update today, display a message about energy provider issue */ +const DisplayAlreadyUpdatedToday = ({ + fluidStatus, + fluidType, + lastExecutionDate, +}: { + fluidStatus: FluidStatus + fluidType: FluidType + lastExecutionDate: string | DateTime +}) => { + const { t } = useI18n() + + const getFluidTypeKonnectorTranslation = (fluidType: FluidType) => { + switch (fluidType) { + case FluidType.GAS: + return 'GRDF' + case FluidType.ELECTRICITY: + return 'Enedis' + default: + return 'Eau Publique du Grand Lyon' + } + } + return ( + <> + <div className="connection-caption"> + {t('konnector_form.label_updated_at')} + </div> + <div className="text-16-bold">{lastExecutionDate.toLocaleString()}</div> + <div> + {fluidStatus?.connection?.konnector && + t('konnector_form.issue') + + ' ' + + getFluidTypeKonnectorTranslation(fluidType) + + '.'} + </div> + </> + ) +} + +/** Tells user to run a manual update */ +const DisplayManualUpdate = () => { + const { t } = useI18n() + return ( + <div className="connection-caption-errored connection-update-errored warning-white text-16-normal"> + <StyledIcon + icon={warningWhite} + size={36} + className="warning-icon" + role="img" + title="Attention" + ariaHidden={false} + /> + <div className="text-16-normal">{t('konnector_form.resolve')}</div> + </div> + ) +} + +const DisplayLastUpdateDate = ({ + lastExecutionDate, +}: { + lastExecutionDate: string | DateTime +}) => { + const { t } = useI18n() + return ( + <div> + <div className="connection-caption text-16-normal"> + {t('konnector_form.label_updated_at')} + </div> + <div className="text-16-bold">{lastExecutionDate.toLocaleString()}</div> + </div> + ) +} + export default ConnectionResult diff --git a/src/locales/fr.json b/src/locales/fr.json index 80b8133f3..735d8a727 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -728,6 +728,7 @@ "konnector_form": { "label_updated_at": "Dernière mise-à-jour le", "button_update": "Mettre à jour", + "loading": "Chargement...", "wait_end_issue": "Attendre la fin de la maintenance avant de mettre à jour.", "button_delete": "Supprimer", "issue": "Le problème semble venir de ", -- GitLab