From acf414e4517434d8847e842930c697b168d94cde Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 21 Nov 2018 07:38:00 +0300 Subject: [PATCH] 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(-) 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 () }); - const contents = ( -
- {this.$slots.default.filter(slot => slot.data)[this.active]} -
- ); + const contents = this.$slots.default.filter(_=>_.data).map(( slot, index ) => { + const active = index === this.active + return ( +
+ {slot} +
+ ) + }); return (
@@ -40,7 +41,7 @@ export default Vue.component('tab-switcher', {
{contents}
-
- ) +
+ ) } }) 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;