From e70b85e9b23c8e1fbb9f937d1dab16a2136cd61d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Farka?= <stepanfarka11@gmail.com>
Date: Wed, 24 Aug 2022 16:37:31 +0200
Subject: [PATCH] [FIX] refactor article list

---
 .../main-articles-article-list.mustache       | 11 ++++
 .../organisms/main-articles-timeline.mustache | 43 ++++++++++++++
 .../_patterns/templates/how-we-works.mustache | 59 ++++++-------------
 .../source/js/components/ViewProvider.vue     |  2 +-
 4 files changed, 72 insertions(+), 43 deletions(-)
 create mode 100644 main/styleguide/source/_patterns/organisms/main-articles-article-list.mustache
 create mode 100644 main/styleguide/source/_patterns/organisms/main-articles-timeline.mustache

diff --git a/main/styleguide/source/_patterns/organisms/main-articles-article-list.mustache b/main/styleguide/source/_patterns/organisms/main-articles-article-list.mustache
new file mode 100644
index 00000000..d19c97eb
--- /dev/null
+++ b/main/styleguide/source/_patterns/organisms/main-articles-article-list.mustache
@@ -0,0 +1,11 @@
+<section class="grid-container mb-4 justify-start xl:mb-14">
+  <div class="grid-content-with-right-side">
+    <div class="leading-6">
+      <h2 class="head-4xl">
+        Články
+      </h2>
+      {{> molecules-person-article-preview }}
+      {{> molecules-person-article-preview }}
+    </div>
+  </div>
+</section>
diff --git a/main/styleguide/source/_patterns/organisms/main-articles-timeline.mustache b/main/styleguide/source/_patterns/organisms/main-articles-timeline.mustache
new file mode 100644
index 00000000..1ee3e6c1
--- /dev/null
+++ b/main/styleguide/source/_patterns/organisms/main-articles-timeline.mustache
@@ -0,0 +1,43 @@
+<div class="grid-container article-section">
+  <div class="grid-full mb-8">
+    <div class="mb-4">
+      <h3 class="head-7xl mb-4 xl:hidden">Červenec</h3>
+      <div class="flex flex-col justify-between xl:flex-row">
+        <div class="xl:pt-8">
+          {{> molecules-work-article-preview }}
+          {{> molecules-work-article-preview }}
+        </div>
+        <div class="relative border border-violet-400 mx-8 hidden xl:block">
+          <div class="absolute bg-violet-400  p-1 text-white font-bold" style="transform: translateX(-50%); top: -1rem">
+            Červenec
+          </div>
+        </div>
+        <div class="xl:pt-14">
+          {{> molecules-work-article-preview }}
+          {{> molecules-work-article-preview }}
+        </div>
+      </div>
+    </div>
+    <div class="mb-4">
+      <h3 class="head-7xl mb-4 xl:hidden">Srpen</h3>
+      <div class="flex flex-col justify-between xl:flex-row">
+        <div class="xl:pt-8">
+          {{> molecules-work-article-preview }}
+          {{> molecules-work-article-preview }}
+        </div>
+        <div class="relative border border-violet-400 mx-8 hidden xl:block">
+          <div class="absolute bg-violet-400  p-1 text-white font-bold" style="transform: translateX(-50%); top: -1rem">
+            Srpen
+          </div>
+        </div>
+        <div class="xl:pt-14">
+          {{> molecules-work-article-preview }}
+          {{> molecules-work-article-preview }}
+        </div>
+      </div>
+    </div>
+    <div class="flex justify-center">
+      {{> atoms-button-animated(btn-text: "Zobrazit další", classes-btn-hidden: "bg-black") }}
+    </div>
+  </div>
+</div>
diff --git a/main/styleguide/source/_patterns/templates/how-we-works.mustache b/main/styleguide/source/_patterns/templates/how-we-works.mustache
index cf399252..f8b74dcc 100644
--- a/main/styleguide/source/_patterns/templates/how-we-works.mustache
+++ b/main/styleguide/source/_patterns/templates/how-we-works.mustache
@@ -4,9 +4,6 @@
 
 <main role="main">
   <div class="grid-container mb-2 xl:mb-12">
-    <div class="grid-left-side">
-      {{> molecules-sidebar-menu }}
-    </div>
     <div class="grid-content leading-6">
       <h2 class="head-xl mb-2">
         Piráti pracují pro občany ČR na všech úrovních. V zastupitelstev obcí působí 400 zastupitelů, dalších 100 v krajích.
@@ -18,48 +15,26 @@
     </div>
   </div>
 
-  <div class="grid-container article-section">
-    <div class="grid-full mb-8">
-      <div class="mb-4">
-      <h3 class="head-7xl mb-4 xl:hidden">Červenec</h3>
-      <div class="flex flex-col justify-between xl:flex-row">
-        <div class="xl:pt-8">
-          {{> molecules-work-article-preview }}
-          {{> molecules-work-article-preview }}
-        </div>
-        <div class="relative border border-violet-400 mx-8 hidden xl:block">
-          <div class="absolute bg-violet-400  p-1 text-white font-bold" style="transform: translateX(-50%); top: -1rem">
-            Červenec
-          </div>
-        </div>
-        <div class="xl:pt-14">
-          {{> molecules-work-article-preview }}
-          {{> molecules-work-article-preview }}
-        </div>
-      </div>
-      </div>
-      <div class="mb-4">
-      <h3 class="head-7xl mb-4 xl:hidden">Srpen</h3>
-      <div class="flex flex-col justify-between xl:flex-row">
-        <div class="xl:pt-8">
-          {{> molecules-work-article-preview }}
-          {{> molecules-work-article-preview }}
-        </div>
-        <div class="relative border border-violet-400 mx-8 hidden xl:block">
-          <div class="absolute bg-violet-400  p-1 text-white font-bold" style="transform: translateX(-50%); top: -1rem">
-            Srpen
-          </div>
-        </div>
-        <div class="xl:pt-14">
-          {{> molecules-work-article-preview }}
-          {{> molecules-work-article-preview }}
+  <div class="__js-root">
+    <ui-view-provider :initial="{timeline: true, articles: false}" :sync-location="true"
+                      v-slot="{ isCurrentView, toggleView }">
+      <div class="grid-container article-section mb-8">
+        <div class="grid-full">
+        <div class="switch">
+          <a @click="toggleView('timeline')" class="switch__item"
+             :class="{'switch__item--active': isCurrentView('timeline')}">Poslanecká sněmovna</a>
+          <a @click="toggleView('articles')" class="switch__item"
+             :class="{'switch__item--active': isCurrentView('articles')}">Vláda</a>
         </div>
       </div>
       </div>
-      <div class="flex justify-center">
-        {{> atoms-button-animated(btn-text: "Zobrazit další", classes-btn-hidden: "bg-black") }}
-      </div>
-    </div>
+        <template v-if="isCurrentView('timeline')">
+          {{> organisms-main-articles-timeline }}
+        </template>
+        <template v-if="isCurrentView('articles')">
+          {{> organisms-main-articles-article-list }}
+        </template>
+    </ui-view-provider>
   </div>
 </main>
 {{> organisms-newsletter-section }}
diff --git a/main/styleguide/source/js/components/ViewProvider.vue b/main/styleguide/source/js/components/ViewProvider.vue
index 75ab10bf..0a27cb27 100644
--- a/main/styleguide/source/js/components/ViewProvider.vue
+++ b/main/styleguide/source/js/components/ViewProvider.vue
@@ -65,7 +65,7 @@ export default {
       this.$data.views = Object.assign({}, this.data.views, updates);
     },
     toggleView(viewId) {
-      this.setView(viewId, !this.isCurrentView(viewId), true);
+      !this.isCurrentView(viewId) && this.setView(viewId, !this.isCurrentView(viewId), true);
     },
     showView(viewId) {
       this.setView(viewId, true, true);
-- 
GitLab