From d7af2c8419df59d8b897bc57e94f6cc67bd60eca Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Tue, 20 Nov 2018 23:25:38 +0300
Subject: mentioned bug in tab-switcher, made shadow-control work in zero-state

---
 src/components/tab_switcher/tab_switcher.jsx | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'src/components/tab_switcher/tab_switcher.jsx')

diff --git a/src/components/tab_switcher/tab_switcher.jsx b/src/components/tab_switcher/tab_switcher.jsx
index 3fff38f6..ea582450 100644
--- a/src/components/tab_switcher/tab_switcher.jsx
+++ b/src/components/tab_switcher/tab_switcher.jsx
@@ -1,5 +1,7 @@
 import Vue from 'vue'
 
+// FIXME: This doesn't like v-if directly inside the tab's contents, breaks vue really bad
+
 import './tab_switcher.scss'
 
 export default Vue.component('tab-switcher', {
-- 
cgit v1.2.3-70-g09d2


From acf414e4517434d8847e842930c697b168d94cde Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Wed, 21 Nov 2018 07:38:00 +0300
Subject: changed the way tab-switcher works to avoid removing/adding nodes
 since that seems to cause issues, instead hiding nodes with css.

---
 src/components/tab_switcher/tab_switcher.jsx  | 19 ++++++++++---------
 src/components/tab_switcher/tab_switcher.scss |  5 +++++
 2 files changed, 15 insertions(+), 9 deletions(-)

(limited to 'src/components/tab_switcher/tab_switcher.jsx')

diff --git a/src/components/tab_switcher/tab_switcher.jsx b/src/components/tab_switcher/tab_switcher.jsx
index ea582450..a044b740 100644
--- a/src/components/tab_switcher/tab_switcher.jsx
+++ b/src/components/tab_switcher/tab_switcher.jsx
@@ -1,7 +1,5 @@
 import Vue from 'vue'
 
-// FIXME: This doesn't like v-if directly inside the tab's contents, breaks vue really bad
-
 import './tab_switcher.scss'
 
 export default Vue.component('tab-switcher', {
@@ -27,11 +25,14 @@ export default Vue.component('tab-switcher', {
             }
             return (<button onClick={this.activateTab(index)} class={ classes.join(' ') }>{slot.data.attrs.label}</button>)
           });
-    const contents = (
-      <div>
-        {this.$slots.default.filter(slot => slot.data)[this.active]}
-      </div>
-    );
+    const contents = this.$slots.default.filter(_=>_.data).map(( slot, index ) => {
+      const active = index === this.active
+      return (
+        <div class={active ? 'active' : 'hidden'}>
+          {slot}
+        </div>
+      )
+    });
     return (
       <div class="tab-switcher">
         <div class="tabs">
@@ -40,7 +41,7 @@ export default Vue.component('tab-switcher', {
         <div class="contents">
           {contents}
         </div>
-      </div>
-    )
+        </div>
+      )
   }
 })
diff --git a/src/components/tab_switcher/tab_switcher.scss b/src/components/tab_switcher/tab_switcher.scss
index 6f3f9f27..4740fbde 100644
--- a/src/components/tab_switcher/tab_switcher.scss
+++ b/src/components/tab_switcher/tab_switcher.scss
@@ -1,6 +1,11 @@
 @import '../../_variables.scss';
 
 .tab-switcher {
+  .contents {
+    .hidden {
+      display: none;
+    }
+  }
   .tabs {
     display: flex;
     position: relative;
-- 
cgit v1.2.3-70-g09d2


From b8b5dbf63e73e9ca7f5683cb6cca8d47e9cee49c Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Wed, 21 Nov 2018 22:08:27 +0300
Subject: fix

---
 src/components/tab_switcher/tab_switcher.jsx | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'src/components/tab_switcher/tab_switcher.jsx')

diff --git a/src/components/tab_switcher/tab_switcher.jsx b/src/components/tab_switcher/tab_switcher.jsx
index a044b740..9e3dee04 100644
--- a/src/components/tab_switcher/tab_switcher.jsx
+++ b/src/components/tab_switcher/tab_switcher.jsx
@@ -41,7 +41,7 @@ export default Vue.component('tab-switcher', {
         <div class="contents">
           {contents}
         </div>
-        </div>
-      )
+      </div>
+    )
   }
 })
-- 
cgit v1.2.3-70-g09d2

