Skip to content
Snippets Groups Projects
Commit 132b4fe1 authored by Bastien DUMONT's avatar Bastien DUMONT :angel:
Browse files

Merge branch '393-consos-ne-pas-laisser-de-sge-dans-interface-utilisateur' into '2.2.0'

Resolve "[consos] Ne pas laisser de "SGE" dans interface utilisateur"

See merge request !814
parents eb22386d ba692fc1
No related branches found
No related tags found
4 merge requests!8192.2.0 to master,!814Resolve "[consos] Ne pas laisser de "SGE" dans interface utilisateur",!8102.2.0 Milestone MR,!741chore: remove unused lib eslint-config-cozy-app
......@@ -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
......@@ -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 ",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment