From 911d373f744931b20295a6338683fa0c2bb135fb Mon Sep 17 00:00:00 2001
From: Romain CREY <ext.sopra.rcrey@grandlyon.com>
Date: Thu, 11 Jun 2020 16:32:06 +0200
Subject: [PATCH] page legal + random picto

---
 .../ViewContainer/ParametersViewContainer.tsx |  2 ++
 .../ViewContainer/ViewContainer.tsx           |  5 ++++
 .../EcogestureCard/EcogestureCard.tsx         |  9 +++++++
 .../EcogestureModal/EcogestureModal.tsx       | 10 ++++++++
 src/locales/fr.json                           | 25 +++++++++++--------
 src/styles/index.scss                         |  1 +
 6 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx
index 39d009bc5..b2fe9942c 100644
--- a/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/ParametersViewContainer.tsx
@@ -4,6 +4,7 @@ import Header from 'components/ContainerComponents/Header/Header'
 import Content from 'components/ContainerComponents/Content/Content'
 import KonnectorViewerContainer from 'components/ContainerComponents/KonnectorViewerContainer/KonnectorViewerContainer'
 import FAQContainer from 'components/ContainerComponents/FAQContainer/FAQContainer'
+import LegalContainer from 'components/ContainerComponents/LegalContainer/LegalContainer'
 
 const ParametersViewContainer: React.FC = () => {
   const [headerHeight, setHeaderHeight] = useState<number>(0)
@@ -20,6 +21,7 @@ const ParametersViewContainer: React.FC = () => {
       <Content height={headerHeight}>
         <FAQContainer />
         <KonnectorViewerContainer isParam={true} />
+        <LegalContainer />
       </Content>
     </React.Fragment>
   )
diff --git a/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx b/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx
index 84cc1c60d..c700cf5eb 100644
--- a/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx
+++ b/src/components/ContainerComponents/ViewContainer/ViewContainer.tsx
@@ -18,6 +18,7 @@ import OngoingChallengeDetailsViewContainer from './OngoingChallengeDetailsViewC
 import LockedChallengeDetailsViewContainer from './LockedChallengeDetailsViewContainer'
 import AvailableChallengeDetailsViewContainer from './AvailableChallengeDetailsViewContainer'
 import SplashContainer from 'components/ContainerComponents/SplashContainer/SplashContainer'
+import LegalViewContainer from './LegalViewContainer'
 
 export const history = createBrowserHistory()
 
@@ -103,6 +104,10 @@ export const ViewContainer = () => {
                           path={`${url}/FAQ`}
                           component={FAQViewContainer}
                         />
+                        <Route
+                          path={`${url}/legal`}
+                          component={LegalViewContainer}
+                        />
                         <Route
                           path={`${url}/`}
                           component={ParametersViewContainer}
diff --git a/src/components/ContentComponents/EcogestureCard/EcogestureCard.tsx b/src/components/ContentComponents/EcogestureCard/EcogestureCard.tsx
index f6ff64f40..b58c90f23 100644
--- a/src/components/ContentComponents/EcogestureCard/EcogestureCard.tsx
+++ b/src/components/ContentComponents/EcogestureCard/EcogestureCard.tsx
@@ -22,18 +22,27 @@ const EcogestureCard: React.FC<EcogestureCardProps> = ({
     handleClick && ecogesture ? handleClick(ecogesture) : null
   }
   const [ecogestureIcon, setEcogestureIcon] = useState(def)
+  const ecogestureIcons: any[] = []
 
   async function importEcogestureIcon(id: string) {
     // Les svg doivent être au format id.svg
     let importedEcogesture
+    let importedEcogestureBis
     try {
       importedEcogesture = await import(
         /* webpackMode: "eager" */ `assets/icons/visu/ecogesture/${id}.svg`
       )
+      importedEcogestureBis = await import(
+        /* webpackMode: "eager" */ `assets/icons/visu/ecogesture/${id}b.svg`
+      )
+      ecogestureIcons.push(importedEcogesture, importedEcogestureBis)
     } catch (e) {}
     if (importedEcogesture) {
       setEcogestureIcon(importedEcogesture.default)
     }
+    if (importedEcogestureBis) {
+      setEcogestureIcon(_.sample(ecogestureIcons).default)
+    }
   }
 
   useEffect(() => {
diff --git a/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx b/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
index 635e15912..609ca6262 100644
--- a/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
+++ b/src/components/ContentComponents/EcogestureModal/EcogestureModal.tsx
@@ -6,6 +6,7 @@ import { EcogestureType } from 'services/dataChallengeContracts'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import Icon from 'cozy-ui/react/Icon'
 import def from 'assets/icons/visu/ecogesture/default.svg'
+import _ from 'lodash'
 
 interface EcogestureModalProps {
   opened: boolean
@@ -24,18 +25,27 @@ const EcogestureModal: React.FC<EcogestureModalProps> = ({
   handleCloseClick,
 }: EcogestureModalProps) => {
   const [ecogestureIcon, setEcogestureIcon] = useState(def)
+  const ecogestureIcons: any[] = []
 
   async function importEcogestureIcon(id: string) {
     // Les svg doivent être au format id.svg
     let importedEcogesture
+    let importedEcogestureBis
     try {
       importedEcogesture = await import(
         /* webpackMode: "eager" */ `assets/icons/visu/ecogesture/${id}.svg`
       )
+      importedEcogestureBis = await import(
+        /* webpackMode: "eager" */ `assets/icons/visu/ecogesture/${id}b.svg`
+      )
+      ecogestureIcons.push(importedEcogesture, importedEcogestureBis)
     } catch (e) {}
     if (importedEcogesture) {
       setEcogestureIcon(importedEcogesture.default)
     }
+    if (importedEcogestureBis) {
+      setEcogestureIcon(_.sample(ecogestureIcons).default)
+    }
   }
 
   useEffect(() => {
diff --git a/src/locales/fr.json b/src/locales/fr.json
index 8b5f54211..b8375f0d9 100644
--- a/src/locales/fr.json
+++ b/src/locales/fr.json
@@ -31,6 +31,7 @@
     "YEARLY_FRENQUENCY": "annuel",
     "MINI_CARDS_LABEL": "AUTRES ENERGIES",
     "APP_FAQ_TITLE": "FAQ",
+    "APP_LEGAL_TITLE": "Mentions légales",
     "APP_NEW_CHALLENGE_TITLE": "Nouveau défi",
     "APP_LOCKED_CHALLENGE_TITLE": "Défi à débloquer",
     "APP_ONGOING_CHALLENGE_TITLE": "Défi en cours",
@@ -146,6 +147,10 @@
     "TITLE_FAQ": "Foire aux questions",
     "READ_FAQ": "Lire la FAQ"
   },
+  "LEGAL": {
+    "TITLE_LEGAL": "Mentions légales",
+    "READ_LEGAL": "Lire les mentions légales"
+  },
   "CHALLENGE": {
     "TITLE_CHALLENGE": "Defi",
     "NO_CHALLENGE": "Veuillez selectionner un defi",
@@ -192,40 +197,40 @@
       "WEAK": "1 nWh : économie faible"
     }
   },
-    "auth": {
+  "auth": {
     "enedis": {
       "connect": {
-        "info" : "En cliquant sur ce bouton, vous accéderez à votre compte Enedis. Vous pourrez donner votre accord pour récupérer vos données de consommation électriques dans votre cloud personnel",
+        "info": "En cliquant sur ce bouton, vous accéderez à votre compte Enedis. Vous pourrez donner votre accord pour récupérer vos données de consommation électriques dans votre cloud personnel",
         "label1": "J'accède à mon",
         "label2": "espace client Enedis"
       },
-      "no_account" : {
+      "no_account": {
         "title": "Pas de compte Enedis ?",
         "text": "Vous pouvez le créer en vous munissant d'une facture d'élétricité."
       },
-      "create_account":  "Je crée mon compte personnel Enedis"
+      "create_account": "Je crée mon compte personnel Enedis"
     },
-    "grdf" : {
+    "grdf": {
       "connect": {
         "label1": "Je me connecte à",
         "label2": "mon compte GRDF"
       },
-      "no_account" : {
+      "no_account": {
         "title": "Pas de compte GRDF ?",
         "text": "Vous pouvez le créer en vous munissant d'une facture de gaz."
       },
-      "create_account":  "Je crée mon compte GRDF"
+      "create_account": "Je crée mon compte GRDF"
     },
-    "egl" : {
+    "egl": {
       "connect": {
         "label1": "Je me connecte à",
         "label2": "mon compte Eau du Grand Lyon"
       },
-      "no_account" : {
+      "no_account": {
         "title": "Pas de compte Eau du Grand Lyon ?",
         "text": "Vous pouvez le créer en vous munissant d'une facture d'eau."
       },
-      "create_account":  "Je crée mon compte Eau du GL"
+      "create_account": "Je crée mon compte Eau du GL"
     }
   },
   "oauth": {
diff --git a/src/styles/index.scss b/src/styles/index.scss
index 79e0b9103..0545d607d 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -21,6 +21,7 @@
 @import 'components/ecogesture';
 @import 'components/modal';
 @import 'components/faq';
+@import 'components/legal';
 @import 'components/splash';
 @import 'components/auth';
 
-- 
GitLab