From a63b2de45f9af41b5089467390760221f8797599 Mon Sep 17 00:00:00 2001
From: "guilhem.carron" <gcarron@grandlyon.com>
Date: Fri, 8 Oct 2021 09:50:10 +0200
Subject: [PATCH] feat(conso): Rework fluid navigation

- Move Konnectors from options to Consumption view
- Merged singleFluidView and homeView into ConsumptionView
- Add Fluid buttons navigation
- Remove FluidCard and AddKonnectorCard
- Add conditionnal render for multifluid view
---
 src/assets/icons/visu/disconnected-grey.svg   |   4 +
 src/assets/icons/visu/disconnected.svg        |   4 +
 src/assets/icons/visu/elec-grey.svg           |   4 +
 src/assets/icons/visu/gas-grey.svg            |   6 +
 src/assets/icons/visu/multi-grey.svg          |  13 ++
 src/assets/icons/visu/multi-icon.svg          |  27 ----
 src/assets/icons/visu/multi.svg               |  30 ++++
 src/assets/icons/visu/notif_error.svg         |  18 +++
 src/assets/icons/visu/water-grey.svg          |   4 +
 .../Analysis/AnalysisConsumption.tsx          |   1 +
 .../Analysis/AnalysisErrorModal.tsx           |   6 +-
 src/components/Analysis/AnalysisView.spec.tsx |   4 +
 src/components/Connection/ConnectionForm.tsx  |  21 ++-
 .../Connection/ConnectionFormLogin.tsx        |   2 +-
 .../Connection/ConnectionFormOAuth.tsx        |   5 +-
 src/components/Connection/connectionForm.scss |  25 ++++
 .../Connection/connectionFormLogin.scss       |   3 +-
 .../Connection/connectionFormOAuth.scss       |   6 +
 .../ConsumptionVisualizer.tsx                 |   1 -
 .../DataloadConsumptionVisualizer.tsx         |  65 +++++----
 .../dataloadConsumptionVisualizer.scss        |   3 -
 .../DateNavigator/DateNavigator.tsx           |  19 ++-
 .../DateNavigator/datenavigator.scss          |   2 +-
 src/components/FluidChart/FluidChart.tsx      |   7 +-
 src/components/Header/header.scss             |   7 +-
 src/components/Home/ConsumptionDetails.tsx    |  58 +-------
 .../ConsumptionView.spec.tsx}                 |  90 +++++++++---
 src/components/Home/ConsumptionView.tsx       | 107 ++++++++++++++
 src/components/Home/FluidButton.spec.tsx      |  67 +++++++++
 src/components/Home/FluidButton.tsx           |  72 ++++++++++
 src/components/Home/FluidButtons.spec.tsx     |  37 +++++
 src/components/Home/FluidButtons.tsx          |  33 +++++
 src/components/Home/HomeView.spec.tsx         | 114 ---------------
 src/components/Home/HomeView.tsx              |  78 -----------
 .../__snapshots__/FluidButton.spec.tsx.snap   |  21 +++
 .../__snapshots__/FluidButtons.spec.tsx.snap  |  20 +++
 src/components/Home/consumptionDetails.scss   |   1 -
 src/components/Home/consumptionView.scss      |  24 ++++
 src/components/Home/fluidButtons.scss         |  38 +++++
 src/components/Home/homeView.scss             |  12 --
 .../HomeCards/AddKonnectorCard.spec.tsx       |  39 ------
 src/components/HomeCards/AddKonnectorCard.tsx |  44 ------
 src/components/HomeCards/FluidCard.spec.tsx   |  27 ----
 src/components/HomeCards/FluidCard.tsx        |  54 --------
 .../AddKonnectorCard.spec.tsx.snap            |  20 ---
 .../__snapshots__/FluidCard.spec.tsx.snap     |  20 ---
 .../HomeCards/addKonnectorCard.scss           |  14 --
 src/components/HomeCards/fluidCard.scss       |  21 ---
 .../Konnector/KonnectorViewerCard.tsx         | 130 +++++++++---------
 .../Konnector/KonnectorViewerList.tsx         |  54 +++++---
 .../Konnector/konnectorViewerList.scss        |  18 ++-
 src/components/Options/OptionsView.tsx        |   2 -
 .../__snapshots__/OptionsView.spec.tsx.snap   |   3 -
 .../FluidPerformanceIndicator.tsx             |   8 +-
 src/components/Routes/Routes.tsx              |  22 +--
 .../SingleFluid/SingleFluidView.tsx           |  81 -----------
 .../SingleFluid/singleFluidView.scss          |  12 --
 .../TotalConsumption.spec.tsx                 |   0
 .../TotalConsumption.tsx                      |   0
 .../TotalConsumption.spec.tsx.snap            |   0
 .../totalConsumption.scss                     |   0
 src/locales/fr.json                           |  10 +-
 src/styles/base/_layout.scss                  |   5 -
 src/utils/picto.ts                            |  57 +++++++-
 src/utils/utils.ts                            |  29 +++-
 65 files changed, 911 insertions(+), 818 deletions(-)
 create mode 100644 src/assets/icons/visu/disconnected-grey.svg
 create mode 100644 src/assets/icons/visu/disconnected.svg
 create mode 100644 src/assets/icons/visu/elec-grey.svg
 create mode 100644 src/assets/icons/visu/gas-grey.svg
 create mode 100644 src/assets/icons/visu/multi-grey.svg
 delete mode 100644 src/assets/icons/visu/multi-icon.svg
 create mode 100644 src/assets/icons/visu/multi.svg
 create mode 100644 src/assets/icons/visu/notif_error.svg
 create mode 100644 src/assets/icons/visu/water-grey.svg
 create mode 100644 src/components/Connection/connectionForm.scss
 rename src/components/{SingleFluid/SingleFluidView.spec.tsx => Home/ConsumptionView.spec.tsx} (51%)
 create mode 100644 src/components/Home/ConsumptionView.tsx
 create mode 100644 src/components/Home/FluidButton.spec.tsx
 create mode 100644 src/components/Home/FluidButton.tsx
 create mode 100644 src/components/Home/FluidButtons.spec.tsx
 create mode 100644 src/components/Home/FluidButtons.tsx
 delete mode 100644 src/components/Home/HomeView.spec.tsx
 delete mode 100644 src/components/Home/HomeView.tsx
 create mode 100644 src/components/Home/__snapshots__/FluidButton.spec.tsx.snap
 create mode 100644 src/components/Home/__snapshots__/FluidButtons.spec.tsx.snap
 create mode 100644 src/components/Home/consumptionView.scss
 create mode 100644 src/components/Home/fluidButtons.scss
 delete mode 100644 src/components/Home/homeView.scss
 delete mode 100644 src/components/HomeCards/AddKonnectorCard.spec.tsx
 delete mode 100644 src/components/HomeCards/AddKonnectorCard.tsx
 delete mode 100644 src/components/HomeCards/FluidCard.spec.tsx
 delete mode 100644 src/components/HomeCards/FluidCard.tsx
 delete mode 100644 src/components/HomeCards/__snapshots__/AddKonnectorCard.spec.tsx.snap
 delete mode 100644 src/components/HomeCards/__snapshots__/FluidCard.spec.tsx.snap
 delete mode 100644 src/components/HomeCards/addKonnectorCard.scss
 delete mode 100644 src/components/HomeCards/fluidCard.scss
 delete mode 100644 src/components/SingleFluid/SingleFluidView.tsx
 delete mode 100644 src/components/SingleFluid/singleFluidView.scss
 rename src/components/{HomeCards => TotalConsumption}/TotalConsumption.spec.tsx (100%)
 rename src/components/{HomeCards => TotalConsumption}/TotalConsumption.tsx (100%)
 rename src/components/{HomeCards => TotalConsumption}/__snapshots__/TotalConsumption.spec.tsx.snap (100%)
 rename src/components/{HomeCards => TotalConsumption}/totalConsumption.scss (100%)

diff --git a/src/assets/icons/visu/disconnected-grey.svg b/src/assets/icons/visu/disconnected-grey.svg
new file mode 100644
index 000000000..12836c717
--- /dev/null
+++ b/src/assets/icons/visu/disconnected-grey.svg
@@ -0,0 +1,4 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M12.5751 7.67132C10.1977 8.94632 8.31917 10.9853 7.24286 13.459C6.16654 15.9328 5.95521 18.6971 6.64295 21.3057C7.3307 23.9144 8.8774 26.2152 11.0334 27.8368C13.1895 29.4584 15.829 30.3062 18.5261 30.2433C21.2231 30.1805 23.8203 29.2106 25.8984 27.4904C27.9766 25.7701 29.4144 23.3997 29.9799 20.7619C30.5454 18.124 30.2055 15.3726 29.0151 12.9516C27.8247 10.5307 25.8533 8.58147 23.419 7.41861" stroke="#7B7B7B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<rect x="17.2466" y="4.24658" width="2" height="13" rx="1" fill="#7B7B7B"/>
+</svg>
diff --git a/src/assets/icons/visu/disconnected.svg b/src/assets/icons/visu/disconnected.svg
new file mode 100644
index 000000000..3dcc63617
--- /dev/null
+++ b/src/assets/icons/visu/disconnected.svg
@@ -0,0 +1,4 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M12.5751 7.67132C10.1977 8.94632 8.31917 10.9853 7.24286 13.459C6.16654 15.9328 5.95521 18.6971 6.64295 21.3057C7.3307 23.9144 8.8774 26.2152 11.0334 27.8368C13.1895 29.4584 15.829 30.3062 18.5261 30.2433C21.2231 30.1805 23.8203 29.2106 25.8984 27.4904C27.9766 25.7701 29.4144 23.3997 29.9799 20.7619C30.5454 18.124 30.2055 15.3726 29.0151 12.9516C27.8247 10.5307 25.8533 8.58147 23.419 7.41861" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<rect x="17.2466" y="4.24658" width="2" height="13" rx="1" fill="white"/>
+</svg>
diff --git a/src/assets/icons/visu/elec-grey.svg b/src/assets/icons/visu/elec-grey.svg
new file mode 100644
index 000000000..a18d88a66
--- /dev/null
+++ b/src/assets/icons/visu/elec-grey.svg
@@ -0,0 +1,4 @@
+<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="15.0001" cy="14.9999" r="14.1364" fill="#121212" stroke="#7B7B7B"/>
+<path d="M0.681885 15.5114L4.09098 18.2386L6.81825 13.4659L10.2273 20.9659L14.3182 9.375L17.7273 20.2841L21.1364 12.1023L24.3752 19.5181L27.2728 14.6693L29.3182 17.0455" stroke="#7B7B7B"/>
+</svg>
diff --git a/src/assets/icons/visu/gas-grey.svg b/src/assets/icons/visu/gas-grey.svg
new file mode 100644
index 000000000..01f147596
--- /dev/null
+++ b/src/assets/icons/visu/gas-grey.svg
@@ -0,0 +1,6 @@
+<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="14.9999" cy="14.9999" r="14.1364" fill="#121212" stroke="#7B7B7B"/>
+<path d="M10.2273 19.5908C12.0096 19.5908 13.4545 18.1459 13.4545 16.3635C13.4545 14.5811 12.0096 13.1362 10.2273 13.1362C8.4449 13.1362 7 14.5811 7 16.3635C7 18.1459 8.4449 19.5908 10.2273 19.5908Z" fill="#121212" stroke="#7B7B7B"/>
+<path d="M17.0453 23.6816C18.0745 23.6816 18.9089 22.8472 18.9089 21.818C18.9089 20.7887 18.0745 19.9543 17.0453 19.9543C16.016 19.9543 15.1816 20.7887 15.1816 21.818C15.1816 22.8472 16.016 23.6816 17.0453 23.6816Z" fill="#121212" stroke="#7B7B7B"/>
+<path d="M16.3635 16.8636C19.2756 16.8636 21.6363 14.5029 21.6363 11.5908C21.6363 8.6788 19.2756 6.31812 16.3635 6.31812C13.4515 6.31812 11.0908 8.6788 11.0908 11.5908C11.0908 14.5029 13.4515 16.8636 16.3635 16.8636Z" fill="#121212" stroke="#7B7B7B"/>
+</svg>
diff --git a/src/assets/icons/visu/multi-grey.svg b/src/assets/icons/visu/multi-grey.svg
new file mode 100644
index 000000000..15ffda8d5
--- /dev/null
+++ b/src/assets/icons/visu/multi-grey.svg
@@ -0,0 +1,13 @@
+<svg width="42" height="40" viewBox="0 0 42 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="28.9091" cy="26.9091" r="11.9091" fill="#121212" stroke="#121212" stroke-width="2"/>
+<circle cx="28.9999" cy="26.9999" r="11.4091" fill="#121212" stroke="#7B7B7B"/>
+<circle cx="25.1818" cy="28.0908" r="2.68182" fill="#121212" stroke="#7B7B7B"/>
+<path d="M30.6363 34.0453C31.515 34.0453 32.2272 33.3331 32.2272 32.4544C32.2272 31.5758 31.515 30.8635 30.6363 30.8635C29.7577 30.8635 29.0454 31.5758 29.0454 32.4544C29.0454 33.3331 29.7577 34.0453 30.6363 34.0453Z" fill="#121212" stroke="#7B7B7B"/>
+<path d="M30.0909 28.5907C32.4758 28.5907 34.4091 26.6574 34.4091 24.2725C34.4091 21.8877 32.4758 19.9543 30.0909 19.9543C27.706 19.9543 25.7727 21.8877 25.7727 24.2725C25.7727 26.6574 27.706 28.5907 30.0909 28.5907Z" fill="#121212" stroke="#7B7B7B"/>
+<circle cx="12.9091" cy="26.9091" r="11.9091" fill="#121212" stroke="#121212" stroke-width="2"/>
+<circle cx="12.9999" cy="26.9999" r="11.4091" fill="#121212" stroke="#7B7B7B"/>
+<path d="M2.09082 30.5311C2.73743 28.7529 4.90358 25.1965 8.39528 25.1965C12.7599 25.1965 12.7599 30.5311 17.1245 30.5311C20.6162 30.5311 21.9741 26.6514 23.914 25.6815" stroke="#7B7B7B"/>
+<circle cx="20.9999" cy="12.9999" r="11.9091" fill="#121212" stroke="#121212" stroke-width="2"/>
+<circle cx="20.9999" cy="12.9999" r="11.4091" fill="#121212" stroke="#7B7B7B"/>
+<path d="M9.54541 13.4091L12.2727 15.5909L14.4545 11.7727L17.1818 17.7727L20.4545 8.5L23.1818 17.2273L25.909 10.6818L28.5 16.6145L30.8181 12.7354L32.4545 14.6364" stroke="#7B7B7B"/>
+</svg>
diff --git a/src/assets/icons/visu/multi-icon.svg b/src/assets/icons/visu/multi-icon.svg
deleted file mode 100644
index a3e8ba505..000000000
--- a/src/assets/icons/visu/multi-icon.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-<svg width="50" height="50" viewBox="0 0 50 50" fill="none" xmlns="http://www.w3.org/2000/svg">
-<g clip-path="url(#clip0)">
-<circle cx="24.0383" cy="13.4612" r="10.9895" fill="#121212" stroke="#D87B39"/>
-<path d="M13.0244 13.8541L15.6468 15.952L17.7447 12.2806L20.3671 18.0499L23.5139 9.13379L26.1363 17.5254L28.7587 11.2317L31.25 16.9361L33.479 13.2063L35.0524 15.0341" stroke="#D87B39"/>
-</g>
-<g clip-path="url(#clip1)">
-<path d="M12.5003 46.5659C18.5696 46.5659 23.4898 41.6458 23.4898 35.5764C23.4898 29.5071 18.5696 24.5869 12.5003 24.5869C6.43091 24.5869 1.51074 29.5071 1.51074 35.5764C1.51074 41.6458 6.43091 46.5659 12.5003 46.5659Z" fill="#121212" stroke="#3A98EC"/>
-<path d="M2.01074 38.9721C2.63248 37.2624 4.71532 33.8428 8.07273 33.8428C12.2695 33.8428 12.2695 38.9721 16.4662 38.9721C19.8237 38.9721 21.1293 35.2417 22.9945 34.3091" stroke="#3A98EC"/>
-</g>
-<g clip-path="url(#clip2)">
-<path d="M37.5003 46.5659C43.5696 46.5659 48.4898 41.6458 48.4898 35.5764C48.4898 29.5071 43.5696 24.5869 37.5003 24.5869C31.4309 24.5869 26.5107 29.5071 26.5107 35.5764C26.5107 41.6458 31.4309 46.5659 37.5003 46.5659Z" fill="#121212" stroke="#45D1B8"/>
-<path d="M33.8293 39.2231C35.2641 39.2231 36.4272 38.06 36.4272 36.6252C36.4272 35.1905 35.2641 34.0273 33.8293 34.0273C32.3946 34.0273 31.2314 35.1905 31.2314 36.6252C31.2314 38.06 32.3946 39.2231 33.8293 39.2231Z" fill="#121212" stroke="#45D1B8"/>
-<path d="M39.0734 42.3704C39.9288 42.3704 40.6223 41.6769 40.6223 40.8214C40.6223 39.9659 39.9288 39.2725 39.0734 39.2725C38.2179 39.2725 37.5244 39.9659 37.5244 40.8214C37.5244 41.6769 38.2179 42.3704 39.0734 42.3704Z" fill="#121212" stroke="#45D1B8"/>
-<path d="M38.5493 37.1259C40.853 37.1259 42.7206 35.2583 42.7206 32.9545C42.7206 30.6508 40.853 28.7832 38.5493 28.7832C36.2455 28.7832 34.3779 30.6508 34.3779 32.9545C34.3779 35.2583 36.2455 37.1259 38.5493 37.1259Z" fill="#121212" stroke="#45D1B8"/>
-</g>
-<defs>
-<clipPath id="clip0">
-<rect width="23.0769" height="23.0769" fill="white" transform="translate(12.5 1.92285)"/>
-</clipPath>
-<clipPath id="clip1">
-<rect width="23.0769" height="23.0769" fill="white" transform="translate(0.961914 24.0381)"/>
-</clipPath>
-<clipPath id="clip2">
-<rect width="23.0769" height="23.0769" fill="white" transform="translate(25.9619 24.0381)"/>
-</clipPath>
-</defs>
-</svg>
diff --git a/src/assets/icons/visu/multi.svg b/src/assets/icons/visu/multi.svg
new file mode 100644
index 000000000..203fdbba1
--- /dev/null
+++ b/src/assets/icons/visu/multi.svg
@@ -0,0 +1,30 @@
+<svg width="42" height="41" viewBox="0 0 42 41" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="28.9091" cy="27.4091" r="11.9091" fill="#121212" stroke="#121212" stroke-width="2"/>
+<g clip-path="url(#clip0)">
+<circle cx="28.9999" cy="27.4999" r="11.4091" fill="#121212" stroke="#45D1B8"/>
+<circle cx="25.1818" cy="28.591" r="2.68182" fill="#121212" stroke="#45D1B8"/>
+<path d="M30.6363 34.5456C31.515 34.5456 32.2272 33.8333 32.2272 32.9547C32.2272 32.076 31.515 31.3638 30.6363 31.3638C29.7577 31.3638 29.0454 32.076 29.0454 32.9547C29.0454 33.8333 29.7577 34.5456 30.6363 34.5456Z" fill="#121212" stroke="#45D1B8"/>
+<path d="M30.0909 29.091C32.4758 29.091 34.4091 27.1576 34.4091 24.7728C34.4091 22.3879 32.4758 20.4546 30.0909 20.4546C27.706 20.4546 25.7727 22.3879 25.7727 24.7728C25.7727 27.1576 27.706 29.091 30.0909 29.091Z" fill="#121212" stroke="#45D1B8"/>
+</g>
+<circle cx="12.9091" cy="27.4091" r="11.9091" fill="#121212" stroke="#121212" stroke-width="2"/>
+<g clip-path="url(#clip1)">
+<circle cx="12.9999" cy="27.4999" r="11.4091" fill="#121212" stroke="#3A98EC"/>
+<path d="M2.09082 31.0308C2.73743 29.2527 4.90358 25.6963 8.39528 25.6963C12.7599 25.6963 12.7599 31.0308 17.1245 31.0308C20.6162 31.0308 21.9741 27.1512 23.914 26.1812" stroke="#3A98EC"/>
+</g>
+<circle cx="20.9999" cy="13.4999" r="11.9091" fill="#121212" stroke="#121212" stroke-width="2"/>
+<g clip-path="url(#clip2)">
+<circle cx="20.9999" cy="13.4999" r="11.4091" fill="#121212" stroke="#D87B39"/>
+<path d="M9.54541 13.9091L12.2727 16.0909L14.4545 12.2727L17.1818 18.2727L20.4545 9L23.1818 17.7273L25.909 11.1818L28.5 17.1145L30.8181 13.2354L32.4545 15.1364" stroke="#D87B39"/>
+</g>
+<defs>
+<clipPath id="clip0">
+<rect width="24" height="24" fill="white" transform="translate(17 15.5)"/>
+</clipPath>
+<clipPath id="clip1">
+<rect width="24" height="24" fill="white" transform="translate(1 15.5)"/>
+</clipPath>
+<clipPath id="clip2">
+<rect width="24" height="24" fill="white" transform="translate(9 1.5)"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/src/assets/icons/visu/notif_error.svg b/src/assets/icons/visu/notif_error.svg
new file mode 100644
index 000000000..bf80ae683
--- /dev/null
+++ b/src/assets/icons/visu/notif_error.svg
@@ -0,0 +1,18 @@
+<svg width="26" height="26" viewBox="0 0 26 26" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g filter="url(#filter0_d)">
+<circle cx="13" cy="11" r="11" fill="#D24444"/>
+<circle cx="13" cy="11" r="10.5" stroke="white"/>
+</g>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M12.114 11.3118L9.03405 14.3917L9.98387 15.3416L13.0638 12.2616L16.3715 15.5692L17.3213 14.6194L14.0137 11.3118L17.3756 7.94982L16.4258 7L13.0638 10.362L9.92956 7.22768L8.97974 8.1775L12.114 11.3118Z" fill="white"/>
+<defs>
+<filter id="filter0_d" x="0" y="0" width="26" height="26" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="2"/>
+<feGaussianBlur stdDeviation="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0"/>
+<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
+<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
+</filter>
+</defs>
+</svg>
diff --git a/src/assets/icons/visu/water-grey.svg b/src/assets/icons/visu/water-grey.svg
new file mode 100644
index 000000000..353df1419
--- /dev/null
+++ b/src/assets/icons/visu/water-grey.svg
@@ -0,0 +1,4 @@
+<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="14.9999" cy="14.9999" r="14.1364" fill="#121212" stroke="#7B7B7B"/>
+<path d="M1.36353 19.4138C2.17179 17.1911 4.87948 12.7456 9.2441 12.7456C14.6999 12.7456 14.6999 19.4138 20.1557 19.4138C24.5203 19.4138 26.2177 14.5642 28.6425 13.3518" stroke="#7B7B7B"/>
+</svg>
diff --git a/src/components/Analysis/AnalysisConsumption.tsx b/src/components/Analysis/AnalysisConsumption.tsx
index 58c291320..d3c431ae6 100644
--- a/src/components/Analysis/AnalysisConsumption.tsx
+++ b/src/components/Analysis/AnalysisConsumption.tsx
@@ -102,6 +102,7 @@ const AnalysisConsumption: React.FC<AnalysisConsumptionProps> = ({
     getTotalValueWithConnectedFluids,
     client,
     analysisDate.month,
+    analysisDate,
   ])
 
   return (
diff --git a/src/components/Analysis/AnalysisErrorModal.tsx b/src/components/Analysis/AnalysisErrorModal.tsx
index 014e6b213..2a4545433 100644
--- a/src/components/Analysis/AnalysisErrorModal.tsx
+++ b/src/components/Analysis/AnalysisErrorModal.tsx
@@ -8,8 +8,8 @@ import Dialog from '@material-ui/core/Dialog'
 const AnalysisErrorModal: React.FC = () => {
   const { t } = useI18n()
   const history = useHistory()
-  const goToOptions = () => {
-    history.push('/options')
+  const goToConsumption = () => {
+    history.push('/consumption')
   }
   const goBack = () => {
     history.goBack()
@@ -54,7 +54,7 @@ const AnalysisErrorModal: React.FC = () => {
               aria-label={t(
                 'analysis_error_modal.accessibility.button_goto_konnector'
               )}
-              onClick={goToOptions}
+              onClick={goToConsumption}
               classes={{
                 root: 'btn-highlight',
                 label: 'text-16-bold',
diff --git a/src/components/Analysis/AnalysisView.spec.tsx b/src/components/Analysis/AnalysisView.spec.tsx
index 8478ca06a..c8ce83163 100644
--- a/src/components/Analysis/AnalysisView.spec.tsx
+++ b/src/components/Analysis/AnalysisView.spec.tsx
@@ -24,6 +24,10 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
   }
 })
 jest.mock('components/Header/CozyBar', () => () => <div id="cozybar"></div>)
+jest.mock('components/DateNavigator/DateNavigator', () => () => (
+  <div id="dateNavigator"></div>
+))
+
 jest.mock('components/Analysis/MonthlyAnalysis', () => () => (
   <div id="monthlyanalysis"></div>
 ))
diff --git a/src/components/Connection/ConnectionForm.tsx b/src/components/Connection/ConnectionForm.tsx
index 12df80160..f66e04b31 100644
--- a/src/components/Connection/ConnectionForm.tsx
+++ b/src/components/Connection/ConnectionForm.tsx
@@ -2,10 +2,12 @@ import React, { useCallback } from 'react'
 import { useDispatch } from 'react-redux'
 import { updatedFluidConnection } from 'store/global/global.actions'
 import { FluidStatus, FluidConnection } from 'models'
+import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 
 import ConnectionFormLogin from 'components/Connection/ConnectionFormLogin'
 import ConnectionFormOauth from 'components/Connection/ConnectionFormOAuth'
-
+import { FluidType } from 'enum/fluid.enum'
+import './connectionForm.scss'
 interface ConnectionFormProps {
   fluidStatus: FluidStatus
 }
@@ -14,6 +16,7 @@ const ConnectionForm: React.FC<ConnectionFormProps> = ({
   fluidStatus,
 }: ConnectionFormProps) => {
   const dispatch = useDispatch()
+  const { t } = useI18n()
 
   const handleSuccess = useCallback(async () => {
     const updatedConnection: FluidConnection = {
@@ -22,9 +25,19 @@ const ConnectionForm: React.FC<ConnectionFormProps> = ({
     }
     dispatch(updatedFluidConnection(fluidStatus.fluidType, updatedConnection))
   }, [dispatch, fluidStatus.fluidType, fluidStatus.connection])
-
   return (
-    <>
+    <div className="konnector-form">
+      <p
+        className={`form-title ${FluidType[
+          fluidStatus.fluidType
+        ].toLowerCase()}`}
+      >
+        {t(
+          `konnector_form.not_connected_${FluidType[
+            fluidStatus.fluidType
+          ].toLowerCase()}`
+        )}
+      </p>
       {!fluidStatus.connection.konnectorConfig.oauth ? (
         <ConnectionFormLogin
           fluidStatus={fluidStatus}
@@ -36,7 +49,7 @@ const ConnectionForm: React.FC<ConnectionFormProps> = ({
           onSuccess={handleSuccess}
         />
       )}
-    </>
+    </div>
   )
 }
 
diff --git a/src/components/Connection/ConnectionFormLogin.tsx b/src/components/Connection/ConnectionFormLogin.tsx
index 006537731..b11ddd45c 100644
--- a/src/components/Connection/ConnectionFormLogin.tsx
+++ b/src/components/Connection/ConnectionFormLogin.tsx
@@ -254,7 +254,7 @@ const ConnectionFormLogin: React.FC<ConnectionFormLoginProps> = ({
           aria-label={t('auth.accessibility.button_create_account')}
           onClick={() => window.open(siteLink, '_blank')}
           classes={{
-            root: 'btn-secondary-positive',
+            root: 'btn-secondary-negative',
             label: 'text-16-normal',
           }}
         >
diff --git a/src/components/Connection/ConnectionFormOAuth.tsx b/src/components/Connection/ConnectionFormOAuth.tsx
index 5a04afc9f..1c882b407 100644
--- a/src/components/Connection/ConnectionFormOAuth.tsx
+++ b/src/components/Connection/ConnectionFormOAuth.tsx
@@ -104,6 +104,9 @@ const ConnectionFormOAuth: React.FC<ConnectionFormOAuthProps> = ({
       <p className="koauthform-info-provider text-16-normal">
         {t('auth.' + `${konnectorSlug}` + '.connect.info')}
       </p>
+      <p className="koauthform-info-provider text-16-italic info2">
+        {t('auth.' + `${konnectorSlug}` + '.connect.info2')}
+      </p>
       <div className="koauthform-button">
         <OAuthForm konnector={konnector} onSuccess={handleSuccess} />
       </div>
@@ -122,7 +125,7 @@ const ConnectionFormOAuth: React.FC<ConnectionFormOAuthProps> = ({
               aria-label={t('auth.accessibility.button_create_account')}
               onClick={toggleInfoCreationEnedisAccount}
               classes={{
-                root: 'btn-secondary-positive',
+                root: 'btn-secondary-negative',
                 label: 'text-16-normal',
               }}
             >
diff --git a/src/components/Connection/connectionForm.scss b/src/components/Connection/connectionForm.scss
new file mode 100644
index 000000000..5e81b0450
--- /dev/null
+++ b/src/components/Connection/connectionForm.scss
@@ -0,0 +1,25 @@
+@import 'src/styles/base/color';
+@import 'src/styles/base/breakpoint';
+
+.konnector-form {
+  margin: 2rem 1.5rem 2rem 1.5rem;
+  @media only screen and (min-width : #{$width-large-phone}) {
+    padding-top: 2rem;
+    margin: 4rem 1.5rem 2rem 1.5rem;
+    padding-bottom: 1rem;
+  }
+  .form-title {
+    font-size: 20px;
+    font-weight: bold;
+    text-align: center;
+    &.electricity {
+      color: $elec-color;
+    }
+    &.gas {
+      color: $gas-color;
+    }
+    &.water {
+      color: $water-color;
+    }
+  }
+}
diff --git a/src/components/Connection/connectionFormLogin.scss b/src/components/Connection/connectionFormLogin.scss
index d89314bce..4477632d8 100644
--- a/src/components/Connection/connectionFormLogin.scss
+++ b/src/components/Connection/connectionFormLogin.scss
@@ -25,10 +25,11 @@
   @media #{$large-phone} {
     margin: 0 0 0.25rem;
   }
-  .form-info-provider{
+  .form-info-provider {
     padding: 0;
     margin: 0;
     color: $grey-bright;
+    text-align: center;
   }
   label {
     font-style: normal;
diff --git a/src/components/Connection/connectionFormOAuth.scss b/src/components/Connection/connectionFormOAuth.scss
index b3e52680d..053697893 100644
--- a/src/components/Connection/connectionFormOAuth.scss
+++ b/src/components/Connection/connectionFormOAuth.scss
@@ -10,6 +10,10 @@
     padding: 0;
     margin: 0;
     color: $grey-bright;
+    text-align: center;
+  }
+  .info2 {
+    margin-top: 0.5rem;
   }
   button.btn-secondary-positive {
     span:first-child {
@@ -17,10 +21,12 @@
     }
   }
   .koauthform-text {
+    text-align: center;
     color: $grey-bright;
     padding-top: 0.5rem;
   }
   .koauthform-button {
+    margin-bottom: 1rem;
     button.btn-highlight {
       padding: 0.5rem;
     }
diff --git a/src/components/ConsumptionVisualizer/ConsumptionVisualizer.tsx b/src/components/ConsumptionVisualizer/ConsumptionVisualizer.tsx
index 63bde2a1f..d597d1173 100644
--- a/src/components/ConsumptionVisualizer/ConsumptionVisualizer.tsx
+++ b/src/components/ConsumptionVisualizer/ConsumptionVisualizer.tsx
@@ -53,7 +53,6 @@ const ConsumptionVisualizer: React.FC<ConsumptionVisualizerProps> = ({
     return lastDay
   }
   const lastDataDate: DateTime | null = getLastDataDate()
-
   return (
     <div className="consumptionvisualizer-root">
       <DataloadConsumptionVisualizer
diff --git a/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx b/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx
index 549df9a7d..79439d735 100644
--- a/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx
+++ b/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.tsx
@@ -11,7 +11,7 @@ import { Dataload } from 'models'
 import { FluidType } from 'enum/fluid.enum'
 import ConverterService from 'services/converter.service'
 import DateChartService from 'services/dateChart.service'
-import { getPicto } from 'utils/picto'
+import { getNavPicto } from 'utils/picto'
 
 import Icon from 'cozy-ui/transpiled/react/Icon'
 import { useClient } from 'cozy-client'
@@ -38,9 +38,6 @@ const DataloadConsumptionVisualizer = ({
   const client = useClient()
   const [openEstimationModal, setOpenEstimationModal] = useState<boolean>(false)
   const converterService = new ConverterService()
-  const fluidStyle =
-    fluidType === FluidType.MULTIFLUID ? 'MULTIFLUID' : FluidType[fluidType]
-  const multiFluid = fluidType === FluidType.MULTIFLUID
   const dateChartService = new DateChartService()
 
   const emitNavEvent = useCallback(
@@ -55,17 +52,18 @@ const DataloadConsumptionVisualizer = ({
   const toggleEstimationModal = useCallback(() => {
     setOpenEstimationModal(prev => !prev)
   }, [])
-
   return (
     <div className="dataloadvisualizer-root">
       {!loading && dataload && dataload.value > -1 ? (
         <div className="dataloadvisualizer-content">
-          {showCompare && !multiFluid && compareDataload && (
+          {showCompare && compareDataload && (
             <>
               {compareDataload.value === -1 ? (
                 <div className="dataloadvisualizer-section dataloadvisualizer-section-left-novalue">
                   <div
-                    className={`dataloadvisualizer-novalue ${fluidStyle.toLowerCase()}-compare text-20-normal`}
+                    className={`dataloadvisualizer-novalue ${FluidType[
+                      fluidType
+                    ].toLowerCase()}-compare text-20-normal`}
                   >
                     {t('consumption_visualizer.no_data')}
                   </div>
@@ -73,15 +71,19 @@ const DataloadConsumptionVisualizer = ({
               ) : (
                 <div className="dataloadvisualizer-section dataloadvisualizer-section-left">
                   <div
-                    className={`dataloadvisualizer-value ${fluidStyle.toLowerCase()}-compare text-36-bold`}
+                    className={`dataloadvisualizer-value ${FluidType[
+                      fluidType
+                    ].toLowerCase()}-compare text-36-bold`}
                   >
                     {formatNumberValues(compareDataload.value)}
                     <span className="text-18-normal">{`${t(
-                      'FLUID.' + fluidStyle + '.UNIT'
+                      'FLUID.' + FluidType[fluidType] + '.UNIT'
                     )}`}</span>
                   </div>
                   <div
-                    className={`dataloadvisualizer-euro ${fluidStyle.toLowerCase()}-compare text-16-normal`}
+                    className={`dataloadvisualizer-euro ${FluidType[
+                      fluidType
+                    ].toLowerCase()}-compare text-16-normal`}
                   >
                     {`${formatNumberValues(
                       converterService.LoadToEuro(
@@ -102,24 +104,25 @@ const DataloadConsumptionVisualizer = ({
             }
           >
             <div
-              className={`dataloadvisualizer-value ${fluidStyle.toLowerCase()} text-36-bold`}
+              className={`dataloadvisualizer-value ${FluidType[
+                fluidType
+              ].toLowerCase()} text-36-bold`}
             >
-              {fluidStyle &&
-              formatNumberValues(dataload.value, fluidStyle, true) >= 1000 &&
-              fluidStyle !== 'MULTIFLUID' ? (
+              {formatNumberValues(dataload.value, FluidType[fluidType], true) >=
+              1000 ? (
                 <>
-                  {formatNumberValues(dataload.value, fluidStyle)}
+                  {formatNumberValues(dataload.value, FluidType[fluidType])}
                   <span className="text-18-normal">
-                    {`${t('FLUID.' + fluidStyle + '.MEGAUNIT')}`}
+                    {`${t('FLUID.' + FluidType[fluidType] + '.MEGAUNIT')}`}
                   </span>
                 </>
               ) : (
                 <>
                   {formatNumberValues(dataload.value)}
                   <sup className="text-18-normal euroUnit">
-                    {`${t('FLUID.' + fluidStyle + '.UNIT')}`}
+                    {`${t('FLUID.' + FluidType[fluidType] + '.UNIT')}`}
                   </sup>
-                  {multiFluid && (
+                  {fluidType === FluidType.MULTIFLUID && (
                     <sup
                       className="text-14-normal estimated"
                       onClick={toggleEstimationModal}
@@ -130,9 +133,11 @@ const DataloadConsumptionVisualizer = ({
                 </>
               )}
             </div>
-            {!multiFluid ? (
+            {fluidType !== FluidType.MULTIFLUID ? (
               <div
-                className={`dataloadvisualizer-euro ${fluidStyle.toLowerCase()} text-16-normal`}
+                className={`dataloadvisualizer-euro ${FluidType[
+                  fluidType
+                ].toLowerCase()} text-16-normal`}
               >
                 {`${formatNumberValues(
                   converterService.LoadToEuro(dataload.value, fluidType)
@@ -145,9 +150,7 @@ const DataloadConsumptionVisualizer = ({
                     return (
                       <NavLink
                         key={index}
-                        to={`/consumption/${t(
-                          'FLUID.' + FluidType[index] + '.NAME'
-                        ).toLowerCase()}`}
+                        to={`/consumption/${FluidType[index].toLowerCase()}`}
                         className="dataloadvisualizer-euro-link"
                       >
                         <div
@@ -165,7 +168,7 @@ const DataloadConsumptionVisualizer = ({
                         >
                           <Icon
                             className="dataloadvisualizer-euro-fluid-icon"
-                            icon={getPicto(index)}
+                            icon={getNavPicto(index, true, true)}
                             size={22}
                           />
                           <div>
@@ -182,9 +185,7 @@ const DataloadConsumptionVisualizer = ({
                   })
                 ) : (
                   <NavLink
-                    to={`/consumption/${t(
-                      'FLUID.' + FluidType[fluidType] + '.NAME'
-                    ).toLowerCase()}`}
+                    to={`/consumption/${FluidType[fluidType].toLowerCase()}`}
                     className="dataloadvisualizer-euro-link"
                   >
                     <div
@@ -194,7 +195,7 @@ const DataloadConsumptionVisualizer = ({
                     >
                       <Icon
                         className="dataloadvisualizer-euro-fluid-icon"
-                        icon={getPicto(fluidType)}
+                        icon={getNavPicto(fluidType, true, true)}
                         size={22}
                       />
                       <div>{`${formatNumberValues(
@@ -213,7 +214,9 @@ const DataloadConsumptionVisualizer = ({
             lastDataDate &&
             dataload.date > lastDataDate ? (
             <div
-              className={`dataloadvisualizer-content ${fluidStyle.toLowerCase()} text-22-normal`}
+              className={`dataloadvisualizer-content ${FluidType[
+                fluidType
+              ].toLowerCase()} text-22-normal`}
             >
               {`${t(
                 'consumption_visualizer.last_data'
@@ -221,7 +224,9 @@ const DataloadConsumptionVisualizer = ({
             </div>
           ) : (
             <div
-              className={`dataloadvisualizer-content ${fluidStyle.toLowerCase()} text-22-normal`}
+              className={`dataloadvisualizer-content${FluidType[
+                fluidType
+              ].toLowerCase()} text-22-normal`}
             >
               {`${t('consumption_visualizer.no_data')}`}
             </div>
diff --git a/src/components/ConsumptionVisualizer/dataloadConsumptionVisualizer.scss b/src/components/ConsumptionVisualizer/dataloadConsumptionVisualizer.scss
index e61efb30a..5a902402a 100644
--- a/src/components/ConsumptionVisualizer/dataloadConsumptionVisualizer.scss
+++ b/src/components/ConsumptionVisualizer/dataloadConsumptionVisualizer.scss
@@ -90,9 +90,6 @@
     .dataloadvisualizer-euro-fluid-icon {
       margin-right: 0.5rem;
     }
-    & div {
-      padding-top: 0.2rem;
-    }
   }
   .electricity {
     color: $elec-color;
diff --git a/src/components/DateNavigator/DateNavigator.tsx b/src/components/DateNavigator/DateNavigator.tsx
index a828a2d0e..1c496d4de 100644
--- a/src/components/DateNavigator/DateNavigator.tsx
+++ b/src/components/DateNavigator/DateNavigator.tsx
@@ -16,6 +16,8 @@ import RigthArrowIcon from 'assets/icons/ico/right-arrow.svg'
 import IconButton from '@material-ui/core/IconButton'
 import Icon from 'cozy-ui/transpiled/react/Icon'
 import { TimeStep } from 'enum/timeStep.enum'
+import { isKonnectorActive } from 'utils/utils'
+import { FluidType } from 'enum/fluid.enum'
 
 interface DateNavigatorProps {
   currentAnalysisDate?: DateTime
@@ -31,6 +33,7 @@ const DateNavigator: React.FC<DateNavigatorProps> = ({
   const { currentTimeStep, selectedDate, currentIndex } = useSelector(
     (state: AppStore) => state.ecolyo.chart
   )
+  const { fluidStatus } = useSelector((state: AppStore) => state.ecolyo.global)
 
   const disablePrev =
     selectedDate <
@@ -70,7 +73,7 @@ const DateNavigator: React.FC<DateNavigatorProps> = ({
   }
 
   const handleChangePrevIndex = () => {
-    if (!disablePrev) {
+    if (!disablePrev && isKonnectorActive(fluidStatus, FluidType.MULTIFLUID)) {
       const increment: number = dateChartService.defineIncrementForPreviousIndex(
         currentTimeStep,
         selectedDate,
@@ -80,7 +83,11 @@ const DateNavigator: React.FC<DateNavigatorProps> = ({
     }
   }
   const handleChangeNextIndex = () => {
-    if (!disableNextSlide) {
+    console.log(!isKonnectorActive(fluidStatus, FluidType.MULTIFLUID))
+    if (
+      !disableNextSlide &&
+      isKonnectorActive(fluidStatus, FluidType.MULTIFLUID)
+    ) {
       const increment: number = dateChartService.defineIncrementForNextIndex(
         currentTimeStep,
         selectedDate,
@@ -96,7 +103,9 @@ const DateNavigator: React.FC<DateNavigatorProps> = ({
         <IconButton
           aria-label={t('consumption.accessibility.button_previous_value')}
           className={classNames('date-navigator-button', {
-            ['disable']: disablePrev,
+            ['disable']:
+              disablePrev ||
+              !isKonnectorActive(fluidStatus, FluidType.MULTIFLUID),
           })}
           onClick={() => handleChangePrevIndex()}
         >
@@ -116,7 +125,9 @@ const DateNavigator: React.FC<DateNavigatorProps> = ({
         <IconButton
           aria-label={t('consumption.accessibility.button_next_value')}
           className={classNames('date-navigator-button', {
-            ['disable']: disableNext,
+            ['disable']:
+              disableNext ||
+              !isKonnectorActive(fluidStatus, FluidType.MULTIFLUID),
           })}
           onClick={() => handleChangeNextIndex()}
         >
diff --git a/src/components/DateNavigator/datenavigator.scss b/src/components/DateNavigator/datenavigator.scss
index 99c23ffe2..8751ba7e3 100644
--- a/src/components/DateNavigator/datenavigator.scss
+++ b/src/components/DateNavigator/datenavigator.scss
@@ -7,7 +7,7 @@
   justify-content: space-around;
   width: 100%;
   margin: auto;
-  padding-bottom: 0.313rem;
+  padding-bottom: 0.6rem;
   max-width: 45.75rem;
   .date-navigator-button {
     border: none;
diff --git a/src/components/FluidChart/FluidChart.tsx b/src/components/FluidChart/FluidChart.tsx
index 059982cba..d22433afe 100644
--- a/src/components/FluidChart/FluidChart.tsx
+++ b/src/components/FluidChart/FluidChart.tsx
@@ -169,14 +169,17 @@ const FluidChart: React.FC<FluidChartProps> = ({
               </div>
             ) : null}
           </div>
-          {fluidStatus.length > 0 && (
+          {/*
+           TODO to be removed in US 562
+          */}
+          {/* {fluidStatus.length > 0 && (
             <OldFluidDataModal
               open={openOldFluidDataModal}
               fluidStatus={fluidStatus}
               fluidOldData={fluidOldData}
               handleCloseClick={handleCloseClick}
             />
-          )}
+          )} */}
         </>
       )}
     </>
diff --git a/src/components/Header/header.scss b/src/components/Header/header.scss
index 0be60bcfc..35ef91228 100644
--- a/src/components/Header/header.scss
+++ b/src/components/Header/header.scss
@@ -14,11 +14,6 @@
   @media #{$large-phone} {
     top: 0;
   }
-  .header-bar {
-    background: linear-gradient(180deg, #000000 0%, rgba(27, 28, 34, 0) 70%);
-    height: 8px;
-    width: 100%;
-  }
   .header-top {
     background: radial-gradient(
       74.83% 76.97% at 50% 13.64%,
@@ -74,4 +69,4 @@
       }
     }
   }
-}
\ No newline at end of file
+}
diff --git a/src/components/Home/ConsumptionDetails.tsx b/src/components/Home/ConsumptionDetails.tsx
index a98db775c..5fdd7c022 100644
--- a/src/components/Home/ConsumptionDetails.tsx
+++ b/src/components/Home/ConsumptionDetails.tsx
@@ -1,13 +1,9 @@
 import React from 'react'
-import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { useSelector } from 'react-redux'
 import { AppStore } from 'store'
-import ConfigService from 'services/fluidConfig.service'
 import { convertDateToShortDateString } from 'utils/date'
-import FluidCard from 'components/HomeCards/FluidCard'
 import './consumptionDetails.scss'
-import AddKonnectorCard from 'components/HomeCards/AddKonnectorCard'
-import TotalConsumption from 'components/HomeCards/TotalConsumption'
+import TotalConsumption from 'components/TotalConsumption/TotalConsumption'
 import { FluidType } from 'enum/fluid.enum'
 interface ConsumptionDetailsProps {
   fluidType: FluidType
@@ -16,17 +12,10 @@ interface ConsumptionDetailsProps {
 const ConsumptionDetails: React.FC<ConsumptionDetailsProps> = ({
   fluidType,
 }: ConsumptionDetailsProps) => {
-  const { t } = useI18n()
-  const { fluidStatus, fluidTypes } = useSelector(
-    (state: AppStore) => state.ecolyo.global
-  )
   const { currentTimeStep, currentDatachart } = useSelector(
     (state: AppStore) => state.ecolyo.chart
   )
 
-  const configService = new ConfigService()
-  const fluidConfig = configService.getFluidConfig()
-
   return (
     <>
       <div className="consumption-details-root">
@@ -41,51 +30,6 @@ const ConsumptionDetails: React.FC<ConsumptionDetailsProps> = ({
             actualData={currentDatachart.actualData}
             fluidType={fluidType}
           />
-          {fluidType === FluidType.MULTIFLUID ? (
-            <div className="fluid-details">
-              <span className="text-16-normal-uppercase details-title">
-                {t('consumption_details.detail')}
-              </span>
-              <div className="details-container">
-                {fluidConfig.map((fluid, index) => {
-                  return fluidTypes.includes(fluid.fluidTypeId) ? (
-                    <FluidCard key={index} fluidType={fluid.fluidTypeId} />
-                  ) : null
-                })}
-              </div>
-              {fluidTypes.length !== 3 && (
-                <span className="text-16-normal-uppercase details-title">
-                  {t('consumption_details.connect')}
-                </span>
-              )}
-              <div className="details-container">
-                {fluidConfig.map((fluid, index) => {
-                  return fluidTypes.includes(fluid.fluidTypeId) ? null : (
-                    <AddKonnectorCard
-                      key={index}
-                      fluidStatus={fluidStatus[index]}
-                      fluidType={fluid.fluidTypeId}
-                    />
-                  )
-                })}
-              </div>
-            </div>
-          ) : (
-            <div className="fluid-details">
-              <div className="text-16-normal-uppercase details-title">
-                {t('consumption_details.mini_cards_label')}
-              </div>
-              <div className="details-container multi-link">
-                <FluidCard fluidType={FluidType.MULTIFLUID} />
-                {fluidConfig.map((fluid, index) => {
-                  return fluidType !== fluid.fluidTypeId &&
-                    fluidTypes.includes(fluid.fluidTypeId) ? (
-                    <FluidCard key={index} fluidType={fluid.fluidTypeId} />
-                  ) : null
-                })}
-              </div>
-            </div>
-          )}
         </div>
       </div>
     </>
diff --git a/src/components/SingleFluid/SingleFluidView.spec.tsx b/src/components/Home/ConsumptionView.spec.tsx
similarity index 51%
rename from src/components/SingleFluid/SingleFluidView.spec.tsx
rename to src/components/Home/ConsumptionView.spec.tsx
index 2960395d1..632908508 100644
--- a/src/components/SingleFluid/SingleFluidView.spec.tsx
+++ b/src/components/Home/ConsumptionView.spec.tsx
@@ -8,20 +8,12 @@ import {
   mockInitialEcolyoState,
 } from '../../../tests/__mocks__/store'
 import * as chartActions from 'store/chart/chart.actions'
-import SingleFluidView from 'components/SingleFluid/SingleFluidView'
-import { FluidType } from 'enum/fluid.enum'
+import { FluidState, FluidType } from 'enum/fluid.enum'
 import { TimeStep } from 'enum/timeStep.enum'
 import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner'
+import ConsumptionView from './ConsumptionView'
+import { FluidStatus } from 'models'
 
-jest.mock('cozy-ui/transpiled/react/I18n', () => {
-  return {
-    useI18n: jest.fn(() => {
-      return {
-        t: (str: string) => str,
-      }
-    }),
-  }
-})
 jest.mock('components/Header/CozyBar', () => () => <div id="cozybar"></div>)
 jest.mock('components/Header/Header', () => () => <div id="header"></div>)
 jest.mock('components/DateNavigator/DateNavigator', () => () => (
@@ -33,12 +25,26 @@ jest.mock('components/FluidChart/FluidChart', () => () => (
 jest.mock('components/Home/ConsumptionDetails', () => () => (
   <div id="consumptiondetails"></div>
 ))
-
+jest.mock('components/Connection/ConnectionForm', () => () => (
+  <div id="connectionForm"></div>
+))
+jest.mock('components/Konnector/KonnectorViewerCard', () => () => (
+  <div id="konnectorViewerCard"></div>
+))
+jest.mock('cozy-ui/transpiled/react/I18n', () => {
+  return {
+    useI18n: jest.fn(() => {
+      return {
+        t: (str: string) => str,
+      }
+    }),
+  }
+})
 const useSelectorSpy = jest.spyOn(reactRedux, 'useSelector')
 const useDispatchSpy = jest.spyOn(reactRedux, 'useDispatch')
 const setCurrentTimeStepSpy = jest.spyOn(chartActions, 'setCurrentTimeStep')
 
-describe('SingleFluidView component', () => {
+describe('ConsumptionView component', () => {
   // eslint-disable-next-line @typescript-eslint/no-explicit-any
   let store: any
   beforeEach(() => {
@@ -47,14 +53,15 @@ describe('SingleFluidView component', () => {
     setCurrentTimeStepSpy.mockClear()
   })
 
-  it('should be rendered correctly', () => {
+  it('should be rendered correctly', async () => {
     useSelectorSpy.mockReturnValue({
       currentTimeStep: TimeStep.WEEK,
       loading: false,
+      fluidStatus: mockInitialEcolyoState.global.fluidStatus,
     })
     const wrapper = mount(
       <Provider store={store}>
-        <SingleFluidView fluidType={FluidType.ELECTRICITY} />
+        <ConsumptionView fluidType={FluidType.ELECTRICITY} />
       </Provider>
     )
     expect(wrapper.find('#cozybar')).toBeTruthy()
@@ -68,10 +75,11 @@ describe('SingleFluidView component', () => {
     useSelectorSpy.mockReturnValue({
       currentTimeStep: TimeStep.WEEK,
       loading: true,
+      fluidStatus: mockInitialEcolyoState.global.fluidStatus,
     })
     const wrapper = mount(
       <Provider store={store}>
-        <SingleFluidView fluidType={FluidType.ELECTRICITY} />
+        <ConsumptionView fluidType={FluidType.ELECTRICITY} />
       </Provider>
     )
     expect(wrapper.find('#cozybar')).toBeTruthy()
@@ -84,13 +92,61 @@ describe('SingleFluidView component', () => {
     useSelectorSpy.mockReturnValue({
       currentTimeStep: TimeStep.HALF_AN_HOUR,
       loading: true,
+      fluidStatus: mockInitialEcolyoState.global.fluidStatus,
     })
     mount(
       <Provider store={store}>
-        <SingleFluidView fluidType={FluidType.GAS} />
+        <ConsumptionView fluidType={FluidType.GAS} />
       </Provider>
     )
     expect(setCurrentTimeStepSpy).toBeCalledTimes(1)
     expect(setCurrentTimeStepSpy).toHaveBeenCalledWith(TimeStep.WEEK)
   })
+  it('should render konnector list when no fluid is connected', () => {
+    useSelectorSpy.mockReturnValue({
+      currentTimeStep: TimeStep.WEEK,
+      loading: true,
+      fluidStatus: mockInitialEcolyoState.global.fluidStatus,
+    })
+    const wrapper = mount(
+      <Provider store={store}>
+        <ConsumptionView fluidType={FluidType.MULTIFLUID} />
+      </Provider>
+    )
+    expect(wrapper.find('.konnectorViewerCard')).toBeTruthy()
+  })
+  it('should render mutlifluid consumption if at least one fluid is connected', () => {
+    const updatedStatus: FluidStatus[] =
+      mockInitialEcolyoState.global.fluidStatus
+    updatedStatus[1].status = FluidState.DONE
+
+    useSelectorSpy.mockReturnValue({
+      currentTimeStep: TimeStep.WEEK,
+      loading: true,
+      fluidStatus: updatedStatus,
+    })
+    const wrapper = mount(
+      <Provider store={store}>
+        <ConsumptionView fluidType={FluidType.MULTIFLUID} />
+      </Provider>
+    )
+    expect(wrapper.find('.consumptionview-content')).toBeTruthy()
+  })
+  it('should render Electricity when elec is connected', () => {
+    const updatedStatus: FluidStatus[] =
+      mockInitialEcolyoState.global.fluidStatus
+    updatedStatus[0].status = FluidState.DONE
+    useSelectorSpy.mockReturnValue({
+      currentTimeStep: TimeStep.WEEK,
+      loading: true,
+      fluidStatus: updatedStatus,
+    })
+    const wrapper = mount(
+      <Provider store={store}>
+        <ConsumptionView fluidType={FluidType.ELECTRICITY} />
+      </Provider>
+    )
+    expect(wrapper.find('.consumptionview-content')).toBeTruthy()
+    expect(wrapper.find('.konnectorViewerCard')).toBeTruthy()
+  })
 })
diff --git a/src/components/Home/ConsumptionView.tsx b/src/components/Home/ConsumptionView.tsx
new file mode 100644
index 000000000..16c93051a
--- /dev/null
+++ b/src/components/Home/ConsumptionView.tsx
@@ -0,0 +1,107 @@
+import React, { useCallback, useEffect, useState } from 'react'
+import './consumptionView.scss'
+import { useSelector, useDispatch } from 'react-redux'
+import { AppStore } from 'store'
+import { FluidType } from 'enum/fluid.enum'
+import { TimeStep } from 'enum/timeStep.enum'
+
+import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner'
+import CozyBar from 'components/Header/CozyBar'
+import Header from 'components/Header/Header'
+import Content from 'components/Content/Content'
+import FluidChart from 'components/FluidChart/FluidChart'
+import DateNavigator from 'components/DateNavigator/DateNavigator'
+import { setCurrentTimeStep, setLoading } from 'store/chart/chart.actions'
+import ConsumptionDetails from 'components/Home/ConsumptionDetails'
+import FluidButtons from 'components/Home/FluidButtons'
+import KonnectorViewerCard from 'components/Konnector/KonnectorViewerCard'
+import KonnectorViewerList from 'components/Konnector/KonnectorViewerList'
+import classNames from 'classnames'
+import { isKonnectorActive } from 'utils/utils'
+
+interface ConsumptionViewProps {
+  fluidType: FluidType
+}
+const ConsumptionView: React.FC<ConsumptionViewProps> = ({
+  fluidType,
+}: ConsumptionViewProps) => {
+  const dispatch = useDispatch()
+  const { currentTimeStep, loading } = useSelector(
+    (state: AppStore) => state.ecolyo.chart
+  )
+  const { fluidStatus } = useSelector((state: AppStore) => state.ecolyo.global)
+  const [isFluidKonnected, setIsFluidKonnected] = useState<boolean>(false)
+  const [headerHeight, setHeaderHeight] = useState<number>(0)
+  const [isMulti] = useState<boolean>(
+    fluidType === FluidType.MULTIFLUID ? true : false
+  )
+
+  const defineHeaderHeight = useCallback((height: number) => {
+    setHeaderHeight(height)
+  }, [])
+
+  useEffect(() => {
+    setIsFluidKonnected(isKonnectorActive(fluidStatus, fluidType))
+    if (
+      fluidType !== FluidType.ELECTRICITY &&
+      currentTimeStep == TimeStep.HALF_AN_HOUR
+    ) {
+      dispatch(setCurrentTimeStep(TimeStep.WEEK))
+    }
+  }, [dispatch, fluidType, currentTimeStep, fluidStatus, isMulti])
+
+  useEffect(() => {
+    dispatch(setLoading(true))
+  }, [dispatch])
+  return (
+    <>
+      <CozyBar />
+      <Header setHeaderHeight={defineHeaderHeight}>
+        <DateNavigator />
+        <FluidButtons activeFluid={fluidType} />
+      </Header>
+      <Content height={headerHeight}>
+        {isFluidKonnected ? (
+          <>
+            {loading && (
+              <div className={'consumptionview-loading'} aria-busy="true">
+                <StyledSpinner size="5em" fluidType={fluidType} />
+              </div>
+            )}
+            <div
+              className={classNames('consumptionview-content', {
+                ['--hidden']: loading,
+              })}
+            >
+              <FluidChart fluidType={fluidType} />
+              <ConsumptionDetails fluidType={fluidType} />
+            </div>
+            {!isMulti && (
+              <div className="konnector-section">
+                <KonnectorViewerCard
+                  fluidStatus={fluidStatus[fluidType]}
+                  isParam={true}
+                  isDisconnected={false}
+                />
+              </div>
+            )}
+          </>
+        ) : !isMulti ? (
+          <div className="konnector-section">
+            <KonnectorViewerCard
+              fluidStatus={fluidStatus[fluidType]}
+              isParam={false}
+              isDisconnected={true}
+            />
+          </div>
+        ) : (
+          <div className="konnector-section">
+            <KonnectorViewerList />
+          </div>
+        )}
+      </Content>
+    </>
+  )
+}
+
+export default ConsumptionView
diff --git a/src/components/Home/FluidButton.spec.tsx b/src/components/Home/FluidButton.spec.tsx
new file mode 100644
index 000000000..c29a109e4
--- /dev/null
+++ b/src/components/Home/FluidButton.spec.tsx
@@ -0,0 +1,67 @@
+import React from 'react'
+import { mount } from 'enzyme'
+import { Provider } from 'react-redux'
+import {
+  createMockStore,
+  mockInitialEcolyoState,
+} from '../../../tests/__mocks__/store'
+
+import { FluidType } from 'enum/fluid.enum'
+import FluidButton from './FluidButton'
+import UsageEventService from 'services/usageEvent.service'
+
+jest.mock('cozy-ui/transpiled/react/I18n', () => {
+  return {
+    useI18n: jest.fn(() => {
+      return {
+        t: (str: string) => str,
+      }
+    }),
+  }
+})
+
+describe('FluidButton component', () => {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
+  let store: any
+  beforeEach(() => {
+    store = createMockStore(mockInitialEcolyoState)
+  })
+
+  it('should be rendered correctly', () => {
+    const wrapper = mount(
+      <Provider store={store}>
+        <FluidButton fluidType={FluidType.ELECTRICITY} isActive={false} />
+      </Provider>
+    ).getElement()
+    expect(wrapper).toMatchSnapshot()
+  })
+
+  it('should render multifluidButton', () => {
+    const wrapper = mount(
+      <Provider store={store}>
+        <FluidButton fluidType={FluidType.MULTIFLUID} isActive={false} />
+      </Provider>
+    )
+    expect(wrapper.find('.multifluid')).toBeTruthy()
+  })
+  it('should render active button', () => {
+    const wrapper = mount(
+      <Provider store={store}>
+        <FluidButton fluidType={FluidType.GAS} isActive={false} />
+      </Provider>
+    )
+    expect(wrapper.find('.active')).toBeTruthy()
+  })
+  it('should trigger nav event', () => {
+    jest.mock('services/usageEvent.service')
+    const mockAddEvent = jest.fn()
+    UsageEventService.addEvent = mockAddEvent
+    const wrapper = mount(
+      <Provider store={store}>
+        <FluidButton fluidType={FluidType.GAS} isActive={false} />
+      </Provider>
+    )
+    wrapper.find('.fluid-button').simulate('click')
+    expect(mockAddEvent).toHaveBeenCalled()
+  })
+})
diff --git a/src/components/Home/FluidButton.tsx b/src/components/Home/FluidButton.tsx
new file mode 100644
index 000000000..d8302292d
--- /dev/null
+++ b/src/components/Home/FluidButton.tsx
@@ -0,0 +1,72 @@
+import React, { useCallback } from 'react'
+import { useI18n } from 'cozy-ui/transpiled/react/I18n'
+
+import { FluidType } from 'enum/fluid.enum'
+import { getNavPicto } from 'utils/picto'
+import { useHistory } from 'react-router'
+import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
+import { UsageEventType } from 'enum/usageEvent.enum'
+import UsageEventService from 'services/usageEvent.service'
+import { useClient } from 'cozy-client'
+import { useSelector } from 'react-redux'
+import { AppStore } from 'store'
+import { isKonnectorActive } from 'utils/utils'
+
+interface FluidButtonProps {
+  fluidType: FluidType
+  isActive: boolean
+}
+
+const FluidButton: React.FC<FluidButtonProps> = ({
+  fluidType,
+  isActive,
+}: FluidButtonProps) => {
+  const { t } = useI18n()
+  const history = useHistory()
+  const { fluidStatus } = useSelector((state: AppStore) => state.ecolyo.global)
+  const client = useClient()
+
+  const isConnected = useCallback(() => {
+    if (fluidType === FluidType.MULTIFLUID) {
+      return true
+    } else return isKonnectorActive(fluidStatus, fluidType)
+  }, [fluidStatus, fluidType])
+
+  const iconType = getNavPicto(fluidType, isActive, isConnected())
+
+  const goToFluid = useCallback(async () => {
+    await UsageEventService.addEvent(client, {
+      type: UsageEventType.NAVIGATION_EVENT,
+      target: FluidType[fluidType].toLowerCase(),
+    })
+    history.push(
+      fluidType === FluidType.MULTIFLUID
+        ? '/consumption'
+        : `/consumption/${FluidType[fluidType].toLowerCase()}`
+    )
+  }, [history, fluidType, client])
+  return (
+    <div
+      className={`fluid-title ${FluidType[
+        fluidType
+      ].toLowerCase()} fluid-button`}
+      onClick={goToFluid}
+    >
+      <StyledIcon
+        className="fluid-icon"
+        icon={iconType}
+        size={fluidType === FluidType.MULTIFLUID ? 36 : 32}
+      />
+
+      <div
+        className={`fluid-title ${FluidType[
+          fluidType
+        ].toLowerCase()} ${isActive && 'active'} text-14-normal`}
+      >
+        {t('FLUID.' + FluidType[fluidType] + '.LABEL')}
+      </div>
+    </div>
+  )
+}
+
+export default FluidButton
diff --git a/src/components/Home/FluidButtons.spec.tsx b/src/components/Home/FluidButtons.spec.tsx
new file mode 100644
index 000000000..06e18813a
--- /dev/null
+++ b/src/components/Home/FluidButtons.spec.tsx
@@ -0,0 +1,37 @@
+import React from 'react'
+import { mount } from 'enzyme'
+import { Provider } from 'react-redux'
+import {
+  createMockStore,
+  mockInitialEcolyoState,
+} from '../../../tests/__mocks__/store'
+
+import FluidButtons from './FluidButtons'
+import { FluidType } from 'enum/fluid.enum'
+
+jest.mock('cozy-ui/transpiled/react/I18n', () => {
+  return {
+    useI18n: jest.fn(() => {
+      return {
+        t: (str: string) => str,
+      }
+    }),
+  }
+})
+
+describe('FluidButtons component', () => {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
+  let store: any
+  beforeEach(() => {
+    store = createMockStore(mockInitialEcolyoState)
+  })
+
+  it('should be rendered correctly', () => {
+    const wrapper = mount(
+      <Provider store={store}>
+        <FluidButtons activeFluid={FluidType.ELECTRICITY} />
+      </Provider>
+    ).getElement()
+    expect(wrapper).toMatchSnapshot()
+  })
+})
diff --git a/src/components/Home/FluidButtons.tsx b/src/components/Home/FluidButtons.tsx
new file mode 100644
index 000000000..07eed7d11
--- /dev/null
+++ b/src/components/Home/FluidButtons.tsx
@@ -0,0 +1,33 @@
+import React from 'react'
+
+import { FluidType } from 'enum/fluid.enum'
+import FluidButton from './FluidButton'
+import './fluidButtons.scss'
+
+interface FluidButtonsProps {
+  activeFluid: FluidType
+}
+const FluidButtons: React.FC<FluidButtonsProps> = ({
+  activeFluid,
+}: FluidButtonsProps) => {
+  const orderedFluids = [
+    FluidType.MULTIFLUID,
+    FluidType.ELECTRICITY,
+    FluidType.GAS,
+    FluidType.WATER,
+  ]
+
+  return (
+    <div className="fluid-buttons">
+      <div className="content">
+        {orderedFluids.map((fluid, key) => (
+          <React.Fragment key={key}>
+            <FluidButton isActive={activeFluid === fluid} fluidType={fluid} />
+          </React.Fragment>
+        ))}
+      </div>
+    </div>
+  )
+}
+
+export default FluidButtons
diff --git a/src/components/Home/HomeView.spec.tsx b/src/components/Home/HomeView.spec.tsx
deleted file mode 100644
index 386d5dce3..000000000
--- a/src/components/Home/HomeView.spec.tsx
+++ /dev/null
@@ -1,114 +0,0 @@
-/* eslint-disable react/display-name */
-import React from 'react'
-import { mount } from 'enzyme'
-import { Provider } from 'react-redux'
-import * as reactRedux from 'react-redux'
-import {
-  createMockStore,
-  mockInitialEcolyoState,
-} from '../../../tests/__mocks__/store'
-import * as chartActions from 'store/chart/chart.actions'
-import HomeView from 'components/Home/HomeView'
-import { TimeStep } from 'enum/timeStep.enum'
-import Header from 'components/Header/Header'
-import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner'
-
-jest.mock('cozy-ui/transpiled/react/I18n', () => {
-  return {
-    useI18n: jest.fn(() => {
-      return {
-        t: (str: string) => str,
-      }
-    }),
-  }
-})
-
-jest.mock('components/Header/CozyBar', () => () => <div id="cozybar"></div>)
-jest.mock('components/DateNavigator/DateNavigator', () => () => (
-  <div id="datenavigator"></div>
-))
-jest.mock('components/FluidChart/FluidChart', () => () => (
-  <div id="fluidchart"></div>
-))
-jest.mock('components/Home/ConsumptionDetails', () => () => (
-  <div id="consumptiondetails"></div>
-))
-jest.mock('components/Home/OldFluidDataModal', () => () => (
-  <div id="oldfluiddatamodal"></div>
-))
-jest.mock('components/Konnector/KonnectorViewerList', () => () => (
-  <div id="konnectorviewerlist"></div>
-))
-
-const useSelectorSpy = jest.spyOn(reactRedux, 'useSelector')
-const useDispatchSpy = jest.spyOn(reactRedux, 'useDispatch')
-const setCurrentTimeStepSpy = jest.spyOn(chartActions, 'setCurrentTimeStep')
-
-describe('SingleFluidView component', () => {
-  // eslint-disable-next-line @typescript-eslint/no-explicit-any
-  let store: any
-  beforeEach(() => {
-    store = createMockStore(mockInitialEcolyoState)
-    useDispatchSpy.mockClear()
-    setCurrentTimeStepSpy.mockClear()
-  })
-
-  it('should be rendered correctly', () => {
-    useSelectorSpy.mockReturnValue({
-      fluidTypes: [0],
-      loading: false,
-    })
-    const wrapper = mount(
-      <Provider store={store}>
-        <HomeView />
-      </Provider>
-    )
-    expect(wrapper.find('#cozybar')).toBeTruthy()
-    expect(wrapper.find(Header)).toBeTruthy()
-    expect(wrapper.find('#datenavigator')).toBeTruthy()
-    expect(wrapper.find('#fluidcard')).toBeTruthy()
-    expect(wrapper.find('#consumptiondetails')).toBeTruthy()
-  })
-
-  it('should display a spinner', () => {
-    useSelectorSpy.mockReturnValue({
-      fluidTypes: [0],
-      loading: true,
-    })
-    const wrapper = mount(
-      <Provider store={store}>
-        <HomeView />
-      </Provider>
-    )
-    expect(wrapper.find('#cozybar')).toBeTruthy()
-    expect(wrapper.find(Header)).toBeTruthy()
-    expect(wrapper.find('#datenavigator')).toBeTruthy()
-    expect(wrapper.find(StyledSpinner)).toBeTruthy()
-  })
-
-  it('should display the konnector viewer list', () => {
-    const wrapper = mount(
-      <Provider store={store}>
-        <HomeView />
-      </Provider>
-    )
-    expect(wrapper.find('#cozybar')).toBeTruthy()
-    expect(wrapper.find(Header)).toBeTruthy()
-    expect(wrapper.find('#konnectorviewerlist')).toBeTruthy()
-  })
-
-  it('should set CurrentTimeStep to WEEK when timeStep = HALF_AN_HOUR', () => {
-    useSelectorSpy.mockReturnValue({
-      fluidTypes: [0],
-      currentTimeStep: TimeStep.HALF_AN_HOUR,
-      loading: false,
-    })
-    mount(
-      <Provider store={store}>
-        <HomeView />
-      </Provider>
-    )
-    expect(setCurrentTimeStepSpy).toBeCalledTimes(1)
-    expect(setCurrentTimeStepSpy).toHaveBeenCalledWith(TimeStep.WEEK)
-  })
-})
diff --git a/src/components/Home/HomeView.tsx b/src/components/Home/HomeView.tsx
deleted file mode 100644
index 6994ba59f..000000000
--- a/src/components/Home/HomeView.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-import React, { useState, useEffect } from 'react'
-import './homeView.scss'
-import classNames from 'classnames'
-import { useSelector, useDispatch } from 'react-redux'
-import { AppStore } from 'store'
-import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner'
-import CozyBar from 'components/Header/CozyBar'
-import Header from 'components/Header/Header'
-import Content from 'components/Content/Content'
-import FluidChart from 'components/FluidChart/FluidChart'
-
-import ConsumptionDetails from 'components/Home/ConsumptionDetails'
-import KonnectorViewerList from 'components/Konnector/KonnectorViewerList'
-
-import { FluidType } from 'enum/fluid.enum'
-import DateNavigator from 'components/DateNavigator/DateNavigator'
-import { setCurrentTimeStep, setLoading } from 'store/chart/chart.actions'
-import { TimeStep } from 'enum/timeStep.enum'
-
-const HomeView: React.FC = () => {
-  const dispatch = useDispatch()
-  const { fluidTypes } = useSelector((state: AppStore) => state.ecolyo.global)
-  const { currentTimeStep, loading } = useSelector(
-    (state: AppStore) => state.ecolyo.chart
-  )
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
-
-  const defineHeaderHeight = (height: number) => {
-    setHeaderHeight(height)
-  }
-
-  useEffect(() => {
-    if (currentTimeStep == TimeStep.HALF_AN_HOUR) {
-      dispatch(setCurrentTimeStep(TimeStep.WEEK))
-    }
-  }, [dispatch, currentTimeStep])
-
-  useEffect(() => {
-    dispatch(setLoading(true))
-  }, [dispatch])
-
-  return (
-    <React.Fragment>
-      <CozyBar />
-      {fluidTypes && fluidTypes.length > 0 ? (
-        <>
-          <Header setHeaderHeight={defineHeaderHeight}>
-            <DateNavigator />
-          </Header>
-          <Content height={headerHeight}>
-            {loading && (
-              <div className={'homeview-loading'} aria-busy="true">
-                <StyledSpinner size="5em" fluidType={FluidType.MULTIFLUID} />
-              </div>
-            )}
-            <div
-              className={classNames('homeview-content', {
-                ['--hidden']: loading,
-              })}
-            >
-              <FluidChart fluidType={FluidType.MULTIFLUID} />
-              <ConsumptionDetails fluidType={FluidType.MULTIFLUID} />
-            </div>
-          </Content>
-        </>
-      ) : (
-        <>
-          <Header setHeaderHeight={defineHeaderHeight}></Header>
-          <Content height={headerHeight}>
-            <KonnectorViewerList isParam={false} />
-          </Content>
-        </>
-      )}
-    </React.Fragment>
-  )
-}
-
-export default HomeView
diff --git a/src/components/Home/__snapshots__/FluidButton.spec.tsx.snap b/src/components/Home/__snapshots__/FluidButton.spec.tsx.snap
new file mode 100644
index 000000000..062bfb67a
--- /dev/null
+++ b/src/components/Home/__snapshots__/FluidButton.spec.tsx.snap
@@ -0,0 +1,21 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`FluidButton component should be rendered correctly 1`] = `
+<Provider
+  store={
+    Object {
+      "clearActions": [Function],
+      "dispatch": [Function],
+      "getActions": [Function],
+      "getState": [Function],
+      "replaceReducer": [Function],
+      "subscribe": [Function],
+    }
+  }
+>
+  <FluidButton
+    fluidType={0}
+    isActive={false}
+  />
+</Provider>
+`;
diff --git a/src/components/Home/__snapshots__/FluidButtons.spec.tsx.snap b/src/components/Home/__snapshots__/FluidButtons.spec.tsx.snap
new file mode 100644
index 000000000..62953c6cf
--- /dev/null
+++ b/src/components/Home/__snapshots__/FluidButtons.spec.tsx.snap
@@ -0,0 +1,20 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`FluidButtons component should be rendered correctly 1`] = `
+<Provider
+  store={
+    Object {
+      "clearActions": [Function],
+      "dispatch": [Function],
+      "getActions": [Function],
+      "getState": [Function],
+      "replaceReducer": [Function],
+      "subscribe": [Function],
+    }
+  }
+>
+  <FluidButtons
+    activeFluid={0}
+  />
+</Provider>
+`;
diff --git a/src/components/Home/consumptionDetails.scss b/src/components/Home/consumptionDetails.scss
index 642888984..bfcec46d5 100644
--- a/src/components/Home/consumptionDetails.scss
+++ b/src/components/Home/consumptionDetails.scss
@@ -13,7 +13,6 @@
     margin-bottom: 0;
   }
   .consumption-details-content {
-    min-height: 15rem;
     width: 45.75rem;
     @media #{$large-phone} {
       width: 100%;
diff --git a/src/components/Home/consumptionView.scss b/src/components/Home/consumptionView.scss
new file mode 100644
index 000000000..a00c6ae2a
--- /dev/null
+++ b/src/components/Home/consumptionView.scss
@@ -0,0 +1,24 @@
+@import 'src/styles/base/breakpoint';
+
+.consumptionview-loading {
+  height: 80vh;
+  width: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.consumptionview-content {
+  &.--hidden {
+    display: none;
+  }
+}
+.konnector-section {
+  margin: auto;
+  width: 45.75rem;
+  box-sizing: border-box;
+  margin-top: 1rem;
+  @media #{$large-phone} {
+    width: 100%;
+    padding: 1rem;
+  }
+}
diff --git a/src/components/Home/fluidButtons.scss b/src/components/Home/fluidButtons.scss
new file mode 100644
index 000000000..5bc8da7d9
--- /dev/null
+++ b/src/components/Home/fluidButtons.scss
@@ -0,0 +1,38 @@
+@import 'src/styles/base/color';
+@import 'src/styles/base/breakpoint';
+
+.fluid-buttons {
+  width: 100%;
+  background: $dark-light-2;
+  box-shadow: inset 0px 4px 8px #000000;
+  .content {
+    display: flex;
+    align-items: center;
+    justify-content: space-evenly;
+    padding: 0.6rem 0;
+    box-sizing: border-box;
+    width: 45.75rem;
+    margin: auto;
+    @media #{$large-phone} {
+      width: 100%;
+    }
+  }
+  .fluid-button {
+    cursor: pointer;
+    min-width: 70px;
+    margin: 0 0.3rem;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    .fluid-title {
+      text-align: center;
+      color: $grey-dark;
+      transition: all 300ms ease;
+      padding-top: 0.3rem;
+      &.active {
+        color: white;
+      }
+    }
+  }
+}
diff --git a/src/components/Home/homeView.scss b/src/components/Home/homeView.scss
deleted file mode 100644
index d465d7b2c..000000000
--- a/src/components/Home/homeView.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-.homeview-loading {
-  height: 80vh;
-  width: 100%;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-}
-.homeview-content {
-  &.--hidden{
-    display: none;
-  }
-}
\ No newline at end of file
diff --git a/src/components/HomeCards/AddKonnectorCard.spec.tsx b/src/components/HomeCards/AddKonnectorCard.spec.tsx
deleted file mode 100644
index 7840621f0..000000000
--- a/src/components/HomeCards/AddKonnectorCard.spec.tsx
+++ /dev/null
@@ -1,39 +0,0 @@
-import React from 'react'
-import { shallow } from 'enzyme'
-import { FluidType } from 'enum/fluid.enum'
-import AddKonnectorCard from './AddKonnectorCard'
-
-import { fluidStatusData } from '../../../tests/__mocks__/fluidStatusData.mock'
-
-jest.mock('cozy-ui/transpiled/react/I18n', () => {
-  return {
-    useI18n: jest.fn(() => {
-      return {
-        t: (str: string) => str,
-      }
-    }),
-  }
-})
-
-describe('AddKonnectorCard component', () => {
-  it('should be rendered correctly', () => {
-    const component = shallow(
-      <AddKonnectorCard
-        fluidType={FluidType.ELECTRICITY}
-        fluidStatus={fluidStatusData[0]}
-      />
-    ).getElement()
-    expect(component).toMatchSnapshot()
-  })
-  it('should be rendered with Elec connexion', () => {
-    const component = shallow(
-      <AddKonnectorCard
-        fluidType={FluidType.ELECTRICITY}
-        fluidStatus={fluidStatusData[0]}
-      />
-    )
-    expect(component.find('.add-konnector-title').text()).toContain(
-      'ELECTRICITY'
-    )
-  })
-})
diff --git a/src/components/HomeCards/AddKonnectorCard.tsx b/src/components/HomeCards/AddKonnectorCard.tsx
deleted file mode 100644
index 723bffa39..000000000
--- a/src/components/HomeCards/AddKonnectorCard.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-import React, { useCallback } from 'react'
-import { useHistory } from 'react-router-dom'
-import { useI18n } from 'cozy-ui/transpiled/react/I18n'
-
-import { FluidType } from 'enum/fluid.enum'
-import { getAddPicto } from 'utils/picto'
-
-import StyledCard from 'components/CommonKit/Card/StyledCard'
-import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
-import './addKonnectorCard.scss'
-import { FluidStatus } from 'models'
-
-interface AddKonnectorCardProps {
-  fluidType: FluidType
-  fluidStatus: FluidStatus
-}
-
-const AddKonnectorCard: React.FC<AddKonnectorCardProps> = ({
-  fluidStatus,
-  fluidType,
-}: AddKonnectorCardProps) => {
-  const { t } = useI18n()
-  const history = useHistory()
-  const iconAddType = getAddPicto(fluidStatus.fluidType)
-
-  const goToKonnector = useCallback(() => {
-    history.push(`/options/${fluidType}`)
-  }, [history, fluidType])
-
-  return (
-    <StyledCard
-      fluidType={fluidType}
-      className="fluidcard-content add-konnector-card"
-      onClick={goToKonnector}
-    >
-      <StyledIcon className="add-konnector-icon" icon={iconAddType} size={50} />
-      <div className="add-konnector-title">
-        {t('FLUID.' + FluidType[fluidType] + '.ADD')}
-      </div>
-    </StyledCard>
-  )
-}
-
-export default AddKonnectorCard
diff --git a/src/components/HomeCards/FluidCard.spec.tsx b/src/components/HomeCards/FluidCard.spec.tsx
deleted file mode 100644
index 9019702f8..000000000
--- a/src/components/HomeCards/FluidCard.spec.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import React from 'react'
-import { shallow } from 'enzyme'
-import FluidCard from './FluidCard'
-import { FluidType } from 'enum/fluid.enum'
-
-jest.mock('cozy-ui/transpiled/react/I18n', () => {
-  return {
-    useI18n: jest.fn(() => {
-      return {
-        t: (str: string) => str,
-      }
-    }),
-  }
-})
-
-describe('FluidCard component', () => {
-  it('should be rendered correctly', () => {
-    const component = shallow(
-      <FluidCard fluidType={FluidType.ELECTRICITY} />
-    ).getElement()
-    expect(component).toMatchSnapshot()
-  })
-  it('should be rendered multifluid', () => {
-    const component = shallow(<FluidCard fluidType={FluidType.MULTIFLUID} />)
-    expect(component.find('.mutlifluid')).toBeTruthy()
-  })
-})
diff --git a/src/components/HomeCards/FluidCard.tsx b/src/components/HomeCards/FluidCard.tsx
deleted file mode 100644
index c735cc063..000000000
--- a/src/components/HomeCards/FluidCard.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import React, { useCallback } from 'react'
-import { useI18n } from 'cozy-ui/transpiled/react/I18n'
-import { useHistory } from 'react-router-dom'
-
-import { FluidType } from 'enum/fluid.enum'
-import { getPicto } from 'utils/picto'
-
-import StyledCard from 'components/CommonKit/Card/StyledCard'
-import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
-import './fluidCard.scss'
-import { useClient } from 'cozy-client'
-import { UsageEventType } from 'enum/usageEvent.enum'
-import UsageEventService from 'services/usageEvent.service'
-
-interface FluidCardProps {
-  fluidType: FluidType
-}
-
-const FluidCard: React.FC<FluidCardProps> = ({ fluidType }: FluidCardProps) => {
-  const { t } = useI18n()
-  const history = useHistory()
-  const iconType = getPicto(fluidType)
-  const client = useClient()
-
-  const goToFluid = useCallback(async () => {
-    await UsageEventService.addEvent(client, {
-      type: UsageEventType.NAVIGATION_EVENT,
-      target: FluidType[fluidType].toLowerCase(),
-    })
-
-    history.push(
-      fluidType === FluidType.MULTIFLUID
-        ? '/consumption'
-        : `/consumption/${t(
-            'FLUID.' + FluidType[fluidType] + '.NAME'
-          ).toLowerCase()}`
-    )
-  }, [history, fluidType, t, client])
-
-  return (
-    <StyledCard
-      fluidType={fluidType}
-      className="fluidcard-content"
-      onClick={goToFluid}
-    >
-      <StyledIcon className="fluidcard-icon" icon={iconType} size={50} />
-      <div className={`fluidcard-title ${FluidType[fluidType].toLowerCase()}`}>
-        {t('FLUID.' + FluidType[fluidType] + '.LABEL')}
-      </div>
-    </StyledCard>
-  )
-}
-
-export default FluidCard
diff --git a/src/components/HomeCards/__snapshots__/AddKonnectorCard.spec.tsx.snap b/src/components/HomeCards/__snapshots__/AddKonnectorCard.spec.tsx.snap
deleted file mode 100644
index 0912f6ba3..000000000
--- a/src/components/HomeCards/__snapshots__/AddKonnectorCard.spec.tsx.snap
+++ /dev/null
@@ -1,20 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`AddKonnectorCard component should be rendered correctly 1`] = `
-<StyledCard
-  className="fluidcard-content add-konnector-card"
-  fluidType={0}
-  onClick={[Function]}
->
-  <StyledIcon
-    className="add-konnector-icon"
-    icon="test-file-stub"
-    size={50}
-  />
-  <div
-    className="add-konnector-title"
-  >
-    FLUID.ELECTRICITY.ADD
-  </div>
-</StyledCard>
-`;
diff --git a/src/components/HomeCards/__snapshots__/FluidCard.spec.tsx.snap b/src/components/HomeCards/__snapshots__/FluidCard.spec.tsx.snap
deleted file mode 100644
index 809b164ba..000000000
--- a/src/components/HomeCards/__snapshots__/FluidCard.spec.tsx.snap
+++ /dev/null
@@ -1,20 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`FluidCard component should be rendered correctly 1`] = `
-<StyledCard
-  className="fluidcard-content"
-  fluidType={0}
-  onClick={[Function]}
->
-  <StyledIcon
-    className="fluidcard-icon"
-    icon="test-file-stub"
-    size={50}
-  />
-  <div
-    className="fluidcard-title electricity"
-  >
-    FLUID.ELECTRICITY.LABEL
-  </div>
-</StyledCard>
-`;
diff --git a/src/components/HomeCards/addKonnectorCard.scss b/src/components/HomeCards/addKonnectorCard.scss
deleted file mode 100644
index 468d37c9f..000000000
--- a/src/components/HomeCards/addKonnectorCard.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-@import 'src/styles/base/color';
-
-.add-konnector-card {
-  height: 6rem;
-  .add-konnector-icon {
-    width: 2rem;
-    height: 2rem;
-  }
-  .add-konnector-title {
-    font-size: 0.875rem;
-    color: $grey-bright;
-    margin-top: 0.5rem;
-  }
-}
diff --git a/src/components/HomeCards/fluidCard.scss b/src/components/HomeCards/fluidCard.scss
deleted file mode 100644
index 1942d1424..000000000
--- a/src/components/HomeCards/fluidCard.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-@import 'src/styles/base/color';
-
-.fluidcard-content {
-  &:not(:first-of-type) {
-    margin-left: 0.6rem;
-  }
-}
-
-button.fluidcard-content {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  justify-content: center;
-  text-align: center;
-  height: 6rem;
-  margin-top: 0;
-  .fluidcard-title {
-    color: $white;
-    margin-top: 0.5rem;
-  }
-}
diff --git a/src/components/Konnector/KonnectorViewerCard.tsx b/src/components/Konnector/KonnectorViewerCard.tsx
index 326c55cc3..42c3cc380 100644
--- a/src/components/Konnector/KonnectorViewerCard.tsx
+++ b/src/components/Konnector/KonnectorViewerCard.tsx
@@ -16,7 +16,7 @@ import {
   FluidStatus,
   FluidConnection,
 } from 'models'
-import { getPicto, getAddPicto, getParamPicto } from 'utils/picto'
+import { getAddPicto, getParamPicto } from 'utils/picto'
 import { updateProfile } from 'store/profile/profile.actions'
 import { setChallengeConsumption } from 'store/challenge/challenge.actions'
 import {
@@ -51,6 +51,7 @@ import { setSelectedDate } from 'store/chart/chart.actions'
 interface KonnectorViewerCardProps {
   fluidStatus: FluidStatus
   isParam: boolean
+  isDisconnected: boolean
 }
 interface ConnectParam {
   connectParam: string | undefined
@@ -59,6 +60,7 @@ interface ConnectParam {
 const KonnectorViewerCard: React.FC<KonnectorViewerCardProps> = ({
   fluidStatus,
   isParam,
+  isDisconnected,
 }: KonnectorViewerCardProps) => {
   const { t } = useI18n()
   const client = useClient()
@@ -84,7 +86,7 @@ const KonnectorViewerCard: React.FC<KonnectorViewerCardProps> = ({
     (state: AppStore) => state.ecolyo.challenge
   )
 
-  const iconType = getPicto(fluidStatus.fluidType)
+  const iconType = getParamPicto(fluidStatus.fluidType)
   const iconAddType = isParam
     ? getParamPicto(fluidStatus.fluidType)
     : getAddPicto(fluidStatus.fluidType)
@@ -249,71 +251,75 @@ const KonnectorViewerCard: React.FC<KonnectorViewerCardProps> = ({
 
   return (
     <>
-      <ExpansionPanel
-        expanded={active}
-        onChange={toggleAccordion}
-        classes={{
-          root: `expansion-panel-root ${
-            fluidStatus.status === FluidState.ERROR ||
-            fluidStatus.status === FluidState.ERROR_LOGIN_FAILED
-              ? 'red-border'
-              : ''
-          }`,
-        }}
-      >
-        <ExpansionPanelSummary
-          aria-label={t(
-            `konnector_options.accessibility.button_toggle_detail_${FluidType[
-              fluidStatus.fluidType
-            ].toLowerCase()}`
-          )}
-          expandIcon={<Icon icon={chevronDown} size={16} />}
+      {!isDisconnected ? (
+        <ExpansionPanel
+          expanded={active}
+          onChange={toggleAccordion}
           classes={{
-            root: 'expansion-panel-summary',
-            content: 'expansion-panel-content',
+            root: `expansion-panel-root ${
+              fluidStatus.status === FluidState.ERROR ||
+              fluidStatus.status === FluidState.ERROR_LOGIN_FAILED
+                ? 'red-border'
+                : ''
+            }`,
           }}
         >
-          <div className="konnector-icon">
-            {fluidStatus.connection.account &&
-            fluidStatus.status !== FluidState.ERROR_LOGIN_FAILED ? (
-              <Icon icon={iconType} size={49} />
-            ) : (
-              <Icon icon={iconAddType} size={49} />
-            )}
-            {fluidStatus.status === FluidState.ERROR ? (
-              <img
-                className="konnector-state-picto"
-                src={failurePicto}
-                alt={t('konnector_options.accessibility.label_ko_status')}
-              ></img>
-            ) : null}
-          </div>
-          <div
-            className={classNames('konnector-title', {
-              [`${FluidType[
+          <ExpansionPanelSummary
+            aria-label={t(
+              `konnector_options.accessibility.button_toggle_detail_${FluidType[
                 fluidStatus.fluidType
-              ].toLowerCase()}-connected text-18-bold`]:
-                fluidStatus.status !== FluidState.NOT_CONNECTED,
-            })}
+              ].toLowerCase()}`
+            )}
+            expandIcon={<Icon icon={chevronDown} size={16} />}
+            classes={{
+              root: 'expansion-panel-summary',
+              content: 'expansion-panel-content',
+            }}
           >
-            {fluidStatus.connection.account &&
-            fluidStatus.status !== FluidState.ERROR_LOGIN_FAILED
-              ? t('FLUID.' + FluidType[fluidStatus.fluidType] + '.LABEL')
-              : t(
-                  `konnector_options.label_connect_to_${FluidType[
-                    fluidStatus.fluidType
-                  ].toLowerCase()}`
-                )}
-          </div>
-        </ExpansionPanelSummary>
-        <ExpansionPanelDetails
-          classes={{
-            root: 'expansion-panel-details',
-          }}
-        >
-          {getConnectionCard()}
-        </ExpansionPanelDetails>
-      </ExpansionPanel>
+            <div className="konnector-icon">
+              {fluidStatus.connection.account &&
+              fluidStatus.status !== FluidState.ERROR_LOGIN_FAILED ? (
+                <Icon icon={iconType} size={49} />
+              ) : (
+                <Icon icon={iconAddType} size={49} />
+              )}
+              {fluidStatus.status === FluidState.ERROR ? (
+                <img
+                  className="konnector-state-picto"
+                  src={failurePicto}
+                  alt={t('konnector_options.accessibility.label_ko_status')}
+                ></img>
+              ) : null}
+            </div>
+            <div
+              className={classNames('konnector-title', {
+                [`${FluidType[
+                  fluidStatus.fluidType
+                ].toLowerCase()}-connected text-18-bold`]:
+                  fluidStatus.status !== FluidState.NOT_CONNECTED,
+              })}
+            >
+              {fluidStatus.connection.account &&
+              fluidStatus.status !== FluidState.ERROR_LOGIN_FAILED
+                ? t('FLUID.' + FluidType[fluidStatus.fluidType] + '.LABEL')
+                : t(
+                    `konnector_options.label_connect_to_${FluidType[
+                      fluidStatus.fluidType
+                    ].toLowerCase()}`
+                  )}
+            </div>
+          </ExpansionPanelSummary>
+          <ExpansionPanelDetails
+            classes={{
+              root: 'expansion-panel-details',
+            }}
+          >
+            {getConnectionCard()}
+          </ExpansionPanelDetails>
+        </ExpansionPanel>
+      ) : (
+        <>{getConnectionCard()}</>
+      )}
       <KonnectorModal
         open={openModal}
         isUpdating={isUpdating}
diff --git a/src/components/Konnector/KonnectorViewerList.tsx b/src/components/Konnector/KonnectorViewerList.tsx
index 8d2c8b725..9bf09ae83 100644
--- a/src/components/Konnector/KonnectorViewerList.tsx
+++ b/src/components/Konnector/KonnectorViewerList.tsx
@@ -1,36 +1,50 @@
-import React from 'react'
+import React, { useCallback } from 'react'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
+import Icon from 'cozy-ui/transpiled/react/Icon'
+
 import { useSelector } from 'react-redux'
 import { AppStore } from 'store'
 import './konnectorViewerList.scss'
-
 import { FluidStatus } from 'models'
-import KonnectorViewerCard from 'components/Konnector/KonnectorViewerCard'
-
-interface KonnectorViewerListProps {
-  isParam: boolean
-}
+import StyledCard from 'components/CommonKit/Card/StyledCard'
+import { FluidType } from 'enum/fluid.enum'
+import { getAddPicto } from 'utils/picto'
+import { useHistory } from 'react-router'
 
-const KonnectorViewerList: React.FC<KonnectorViewerListProps> = ({
-  isParam = false,
-}: KonnectorViewerListProps) => {
+const KonnectorViewerList: React.FC = () => {
   const { t } = useI18n()
   const { fluidStatus } = useSelector((state: AppStore) => state.ecolyo.global)
-
+  const history = useHistory()
+  const goToFluid = useCallback(
+    fluidType => {
+      history.push(`/consumption/${FluidType[fluidType].toLowerCase()}`)
+    },
+    [history]
+  )
   return (
     <div className="kv-root">
       <div className="kv-content">
-        <div className="kv-header text-16-normal-uppercase">
-          {t('konnector_form.title')}
-        </div>
         <div>
-          {fluidStatus.map((fluidStatusItem: FluidStatus, index: number) => {
+          {fluidStatus.map((fluidStatusItem: FluidStatus, key: number) => {
             return (
-              <KonnectorViewerCard
-                key={index}
-                isParam={isParam}
-                fluidStatus={fluidStatusItem}
-              />
+              <StyledCard
+                key={key}
+                className="connection-card"
+                onClick={() => goToFluid(fluidStatusItem.fluidType)}
+              >
+                <Icon icon={getAddPicto(fluidStatusItem.fluidType)} size={36} />
+                <div
+                  className={`konnector-title text-18-bold ${FluidType[
+                    fluidStatusItem.fluidType
+                  ].toLowerCase()}`}
+                >
+                  {t(
+                    `konnector_options.label_connect_to_${FluidType[
+                      fluidStatusItem.fluidType
+                    ].toLowerCase()}`
+                  )}
+                </div>
+              </StyledCard>
             )
           })}
         </div>
diff --git a/src/components/Konnector/konnectorViewerList.scss b/src/components/Konnector/konnectorViewerList.scss
index 9b94c867f..b2a603cd3 100644
--- a/src/components/Konnector/konnectorViewerList.scss
+++ b/src/components/Konnector/konnectorViewerList.scss
@@ -6,7 +6,7 @@
   flex-direction: column;
   align-items: center;
   justify-content: center;
-  padding: 0 1.5rem;
+  padding: 1.5rem 1rem 1rem 1rem;
   .kv-content {
     width: 45.75rem;
     @media #{$large-phone} {
@@ -19,10 +19,14 @@
     }
   }
 }
-.state-icon {
-  height: 22px;
-  width: 22px;
-  position: absolute;
-  bottom: 8px;
-  left: 30px;
+button.connection-card div {
+  display: flex;
+  align-items: center;
+  justify-content: start;
+  height: 80px;
+  font-weight: normal;
+  box-sizing: border-box;
+  svg {
+    margin-right: 1.5rem;
+  }
 }
diff --git a/src/components/Options/OptionsView.tsx b/src/components/Options/OptionsView.tsx
index 73205bfea..a6fb18867 100644
--- a/src/components/Options/OptionsView.tsx
+++ b/src/components/Options/OptionsView.tsx
@@ -2,7 +2,6 @@ import React, { useState } from 'react'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import Content from 'components/Content/Content'
-import KonnectorViewerList from 'components/Konnector/KonnectorViewerList'
 import ReportOptions from 'components/Options/ReportOptions'
 import FAQLink from 'components/FAQ/FAQLink'
 import LegalNoticeLink from 'components/LegalNotice/LegalNoticeLink'
@@ -25,7 +24,6 @@ const OptionsView: React.FC = () => {
         desktopTitleKey={'common.title_options'}
       ></Header>
       <Content height={headerHeight}>
-        <KonnectorViewerList isParam={true} />
         <ProfileTypeOptions />
         <ReportOptions />
         <FAQLink />
diff --git a/src/components/Options/__snapshots__/OptionsView.spec.tsx.snap b/src/components/Options/__snapshots__/OptionsView.spec.tsx.snap
index 8cb686a01..a77207e38 100644
--- a/src/components/Options/__snapshots__/OptionsView.spec.tsx.snap
+++ b/src/components/Options/__snapshots__/OptionsView.spec.tsx.snap
@@ -12,9 +12,6 @@ exports[`OptionsView component should be rendered correctly 1`] = `
   <Content
     height={0}
   >
-    <KonnectorViewerList
-      isParam={true}
-    />
     <ProfileTypeOptions />
     <ReportOptions />
     <FAQLink />
diff --git a/src/components/PerformanceIndicator/FluidPerformanceIndicator.tsx b/src/components/PerformanceIndicator/FluidPerformanceIndicator.tsx
index e3abfac38..0de905de9 100644
--- a/src/components/PerformanceIndicator/FluidPerformanceIndicator.tsx
+++ b/src/components/PerformanceIndicator/FluidPerformanceIndicator.tsx
@@ -49,12 +49,8 @@ const FluidPerformanceIndicator: React.FC<FluidPerformanceIndicatorProps> = ({
     })
     dispatch(setCurrentTimeStep(TimeStep.DAY))
     dispatch(setSelectedDate(date))
-    history.push(
-      `/consumption/${t(
-        'FLUID.' + FluidType[fluidType] + '.NAME'
-      ).toLowerCase()}`
-    )
-  }, [t, dispatch, history, date, fluidType, client])
+    history.push(`/consumption/${FluidType[fluidType].toLowerCase()}`)
+  }, [dispatch, history, date, fluidType, client])
 
   return (
     <StyledCard onClick={handleClick} fluidType={fluidType}>
diff --git a/src/components/Routes/Routes.tsx b/src/components/Routes/Routes.tsx
index 1be9bf646..15879a680 100644
--- a/src/components/Routes/Routes.tsx
+++ b/src/components/Routes/Routes.tsx
@@ -9,10 +9,7 @@ import ActionView from 'components/Action/ActionView'
 import UnSubscribe from 'components/Options/UnSubscribe'
 import TermsView from 'components/Terms/TermsView'
 
-const HomeView = lazy(() => import('components/Home/HomeView'))
-const SingleFluidView = lazy(() =>
-  import('components/SingleFluid/SingleFluidView')
-)
+const ConsumptionView = lazy(() => import('components/Home/ConsumptionView'))
 
 const EcogestureView = lazy(() =>
   import('components/Ecogesture/EcogestureView')
@@ -48,19 +45,22 @@ const Routes: React.FC<RouteProps> = ({ isLastTermAccepted }: RouteProps) => {
           path="/consumption"
           render={({ match: { url } }) => (
             <>
-              <Route path={`${url}/electricité`} exact>
-                <SingleFluidView fluidType={FluidType.ELECTRICITY} />
+              <Route path={`${url}/electricity`} exact>
+                <ConsumptionView fluidType={FluidType.ELECTRICITY} />
+              </Route>
+              <Route path={`${url}/water`} exact>
+                <ConsumptionView fluidType={FluidType.WATER} />
               </Route>
-              <Route path={`${url}/eau`} exact>
-                <SingleFluidView fluidType={FluidType.WATER} />
+              <Route path={`${url}/gas`} exact>
+                <ConsumptionView fluidType={FluidType.GAS} />
               </Route>
-              <Route path={`${url}/gaz`} exact>
-                <SingleFluidView fluidType={FluidType.GAS} />
+              <Route path={`${url}/`} exact>
+                <ConsumptionView fluidType={FluidType.MULTIFLUID} />
               </Route>
-              <Route path={`${url}/`} component={HomeView} exact />
             </>
           )}
         />
+
         <Route
           path="/challenges"
           render={({ match: { url } }) => (
diff --git a/src/components/SingleFluid/SingleFluidView.tsx b/src/components/SingleFluid/SingleFluidView.tsx
deleted file mode 100644
index c59230923..000000000
--- a/src/components/SingleFluid/SingleFluidView.tsx
+++ /dev/null
@@ -1,81 +0,0 @@
-import React, { useCallback, useEffect, useState } from 'react'
-import './singleFluidView.scss'
-import { useSelector, useDispatch } from 'react-redux'
-import { AppStore } from 'store'
-import classNames from 'classnames'
-
-import { FluidType } from 'enum/fluid.enum'
-import { TimeStep } from 'enum/timeStep.enum'
-
-import StyledSpinner from 'components/CommonKit/Spinner/StyledSpinner'
-import CozyBar from 'components/Header/CozyBar'
-import Header from 'components/Header/Header'
-import Content from 'components/Content/Content'
-import FluidChart from 'components/FluidChart/FluidChart'
-import DateNavigator from 'components/DateNavigator/DateNavigator'
-import { setCurrentTimeStep, setLoading } from 'store/chart/chart.actions'
-import ConsumptionDetails from 'components/Home/ConsumptionDetails'
-
-interface SingleFluidViewProps {
-  fluidType: FluidType
-}
-const SingleFluidView: React.FC<SingleFluidViewProps> = ({
-  fluidType,
-}: SingleFluidViewProps) => {
-  const dispatch = useDispatch()
-  const { currentTimeStep, loading } = useSelector(
-    (state: AppStore) => state.ecolyo.chart
-  )
-
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
-
-  const defineHeaderHeight = useCallback((height: number) => {
-    setHeaderHeight(height)
-  }, [])
-
-  useEffect(() => {
-    if (
-      fluidType !== FluidType.ELECTRICITY &&
-      currentTimeStep == TimeStep.HALF_AN_HOUR
-    ) {
-      dispatch(setCurrentTimeStep(TimeStep.WEEK))
-    }
-  }, [dispatch, fluidType, currentTimeStep])
-
-  useEffect(() => {
-    dispatch(setLoading(true))
-  }, [dispatch])
-
-  return (
-    <>
-      <CozyBar
-        titleKey={`FLUID.${FluidType[fluidType]}.NAME`}
-        displayBackArrow={true}
-      />
-      <Header
-        setHeaderHeight={defineHeaderHeight}
-        desktopTitleKey={`FLUID.${FluidType[fluidType]}.NAME`}
-        displayBackArrow={true}
-      >
-        <DateNavigator />
-      </Header>
-      <Content height={headerHeight}>
-        {loading && (
-          <div className={'singlefluidview-loading'} aria-busy="true">
-            <StyledSpinner size="5em" fluidType={fluidType} />
-          </div>
-        )}
-        <div
-          className={classNames('singlefluidview-content', {
-            ['--hidden']: loading,
-          })}
-        >
-          <FluidChart fluidType={fluidType} />
-          <ConsumptionDetails fluidType={fluidType} />
-        </div>
-      </Content>
-    </>
-  )
-}
-
-export default SingleFluidView
diff --git a/src/components/SingleFluid/singleFluidView.scss b/src/components/SingleFluid/singleFluidView.scss
deleted file mode 100644
index d3202ad7a..000000000
--- a/src/components/SingleFluid/singleFluidView.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-.singlefluidview-loading {
-  height: 80vh;
-  width: 100%;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-}
-.singlefluidview-content {
-  &.--hidden{
-    display: none;
-  }
-}
\ No newline at end of file
diff --git a/src/components/HomeCards/TotalConsumption.spec.tsx b/src/components/TotalConsumption/TotalConsumption.spec.tsx
similarity index 100%
rename from src/components/HomeCards/TotalConsumption.spec.tsx
rename to src/components/TotalConsumption/TotalConsumption.spec.tsx
diff --git a/src/components/HomeCards/TotalConsumption.tsx b/src/components/TotalConsumption/TotalConsumption.tsx
similarity index 100%
rename from src/components/HomeCards/TotalConsumption.tsx
rename to src/components/TotalConsumption/TotalConsumption.tsx
diff --git a/src/components/HomeCards/__snapshots__/TotalConsumption.spec.tsx.snap b/src/components/TotalConsumption/__snapshots__/TotalConsumption.spec.tsx.snap
similarity index 100%
rename from src/components/HomeCards/__snapshots__/TotalConsumption.spec.tsx.snap
rename to src/components/TotalConsumption/__snapshots__/TotalConsumption.spec.tsx.snap
diff --git a/src/components/HomeCards/totalConsumption.scss b/src/components/TotalConsumption/totalConsumption.scss
similarity index 100%
rename from src/components/HomeCards/totalConsumption.scss
rename to src/components/TotalConsumption/totalConsumption.scss
diff --git a/src/locales/fr.json b/src/locales/fr.json
index 90036ca5a..3a03c4654 100644
--- a/src/locales/fr.json
+++ b/src/locales/fr.json
@@ -105,7 +105,8 @@
         "placeholder": "Adresse mail",
         "label1": "J'accède à mon",
         "label2": "espace client Enedis",
-        "info": "Pour accéder à vos données de consommation électrique, connectez-vous à votre compte Enedis via le bouton ci-dessous. Enedis est responsable de votre compteur Linky et en charge de relever vos consommations."
+        "info": "Veuillez donner votre accord pour qu’Enedis nous transmette vos données de consommation.",
+        "info2": "Enedis est responsable de votre compteur Linky et en charge de relever vos consommations."
       },
       "no_account": {
         "title": "Pas de compte Enedis ?",
@@ -133,7 +134,8 @@
         "placeholder": "Adresse email",
         "label1": "Je me connecte à",
         "label2": "mon compte GRDF",
-        "info": "Pour accéder à vos données de consommation gaz, connectez-vous à votre compte GRDF. GRDF est responsable de votre compteur Gazpar et en charge de relever vos consommations."
+        "info": "Veuillez donner votre accord pour que GRDF nous transmette vos données de consommation.",
+        "info2": "GRDF est responsable de votre compteur Gazpar et en charge de relever vos consommations."
       },
       "no_account": {
         "title": "Pas de compte GRDF ?",
@@ -495,7 +497,6 @@
     }
   },
   "konnector_form": {
-    "title": "Connexion aux distributeurs",
     "label_updated_at": "dernière mise-à-jour le",
     "button_update": "Mettre à jour",
     "button_delete": "Supprimer",
@@ -507,6 +508,9 @@
     "error_update": "Un problème est survenu lors du rapatriement de vos données.",
     "error_update_oauth": "Le service demande d'autoriser à nouveau votre accès. Merci de supprimer puis reconnecter votre compte. Aucune donnée ne sera perdue.",
     "OK": "Ok",
+    "not_connected_gas": "Ecolyo n'est pas connecté au gaz ",
+    "not_connected_electricity": "Ecolyo n'est pas connecté à l'électricité ",
+    "not_connected_water": "Ecolyo n'est pas connecté à l'eau ",
     "accessibility": {
       "button_install": "Installer le connecteur",
       "button_update": "Mettre à jour votre connexion",
diff --git a/src/styles/base/_layout.scss b/src/styles/base/_layout.scss
index 2abaa0cde..5210a2da9 100644
--- a/src/styles/base/_layout.scss
+++ b/src/styles/base/_layout.scss
@@ -59,11 +59,6 @@ body {
   @media #{$large-phone} {
     top: 0;
   }
-  .header-bar {
-    background: linear-gradient(180deg, #000000 0%, rgba(27, 28, 34, 0) 70%);
-    height: 8px;
-    width: 100%;
-  }
   .header-top {
     background: radial-gradient(
       74.83% 76.97% at 50% 13.64%,
diff --git a/src/utils/picto.ts b/src/utils/picto.ts
index 850937511..f85d0efc5 100644
--- a/src/utils/picto.ts
+++ b/src/utils/picto.ts
@@ -1,6 +1,9 @@
 import ElecIcon from '../assets/icons/visu/elec.svg'
+import ElecUnactive from '../assets/icons/visu/elec-grey.svg'
 import WaterIcon from '../assets/icons/visu/water.svg'
+import WaterUnactive from '../assets/icons/visu/water-grey.svg'
 import GasIcon from '../assets/icons/visu/gas.svg'
+import GasUnactive from '../assets/icons/visu/gas-grey.svg'
 import ElecSmallIcon from '../assets/icons/visu/elec-small.svg'
 import WaterSmallIcon from '../assets/icons/visu/water-small.svg'
 import GasSmallIcon from '../assets/icons/visu/gas-small.svg'
@@ -8,7 +11,10 @@ import AddElecIcon from 'assets/icons/ico/add-elec.svg'
 import AddWaterIcon from 'assets/icons/ico/add-water.svg'
 import AddGasIcon from 'assets/icons/ico/add-gas.svg'
 import ElecParamIcon from 'assets/icons/visu/elec-param.svg'
-import MultiIcon from 'assets/icons/visu/multi-icon.svg'
+import Multi from 'assets/icons/visu/multi.svg'
+import MultiUnactive from 'assets/icons/visu/multi-grey.svg'
+import DisconnectedActive from 'assets/icons/visu/disconnected.svg'
+import Disconnected from 'assets/icons/visu/disconnected-grey.svg'
 import WaterParamIcon from 'assets/icons/visu/water-param.svg'
 import GasParamIcon from 'assets/icons/visu/gas-param.svg'
 import { FluidType } from '../enum/fluid.enum'
@@ -26,7 +32,7 @@ export function getPicto(type: FluidType, small = false) {
     case FluidType.GAS:
       return small ? GasSmallIcon : GasIcon
     case FluidType.MULTIFLUID:
-      return MultiIcon
+      return Multi
     default:
       return ElecIcon
   }
@@ -60,3 +66,50 @@ export function getParamPicto(type: FluidType) {
       return ElecParamIcon
   }
 }
+
+/**
+ * Return an icon corresponding to FuildType enum
+ * @param type FluidType
+ */
+export function getNavPicto(
+  type: FluidType,
+  active: boolean,
+  connected: boolean
+) {
+  switch (type) {
+    case FluidType.ELECTRICITY:
+      return connected
+        ? active
+          ? ElecSmallIcon
+          : ElecUnactive
+        : active
+        ? DisconnectedActive
+        : Disconnected
+    case FluidType.WATER:
+      return connected
+        ? active
+          ? WaterSmallIcon
+          : WaterUnactive
+        : active
+        ? DisconnectedActive
+        : Disconnected
+    case FluidType.GAS:
+      return connected
+        ? active
+          ? GasSmallIcon
+          : GasUnactive
+        : active
+        ? DisconnectedActive
+        : Disconnected
+    case FluidType.MULTIFLUID:
+      return connected
+        ? active
+          ? Multi
+          : MultiUnactive
+        : active
+        ? DisconnectedActive
+        : Disconnected
+    default:
+      return ElecIcon
+  }
+}
diff --git a/src/utils/utils.ts b/src/utils/utils.ts
index 124e620fd..45f940a60 100644
--- a/src/utils/utils.ts
+++ b/src/utils/utils.ts
@@ -1,6 +1,6 @@
 import get from 'lodash/get'
-import { GetRelationshipsReturn, Relation } from 'models'
-import { FluidType } from '../enum/fluid.enum'
+import { FluidStatus, GetRelationshipsReturn, Relation } from 'models'
+import { FluidState, FluidType } from '../enum/fluid.enum'
 import { KonnectorUpdate } from '../enum/konnectorUpdate.enum'
 import { DateTime } from 'luxon'
 
@@ -24,6 +24,31 @@ export function getKonnectorUpdateError(type: string) {
       return KonnectorUpdate.ERROR_UPDATE
   }
 }
+
+export function isKonnectorActive(
+  fluidStatus: FluidStatus[],
+  fluidType: FluidType
+): boolean {
+  if (fluidType === FluidType.MULTIFLUID) {
+    if (
+      fluidStatus.filter(
+        fluid =>
+          fluid.status === FluidState.NOT_CONNECTED ||
+          fluid.status === FluidState.ERROR_LOGIN_FAILED
+      ).length === 3
+    ) {
+      return false
+    } else {
+      return true
+    }
+  }
+  if (
+    fluidStatus[fluidType].status === FluidState.NOT_CONNECTED ||
+    fluidStatus[fluidType].status === FluidState.ERROR_LOGIN_FAILED
+  ) {
+    return false
+  } else return true
+}
 export function formatNumberValues(
   value: number | null,
   fluidStyle?: string,
-- 
GitLab