From eacbd9b5009a3646854b59e9983753fd288ea1c4 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Mon, 27 Aug 2018 22:22:25 +0300
Subject: Separated tab-switcher into a reusable component. This depends on JSX
 addition

---
 src/components/tab_switcher/tab_switcher.jsx | 44 ++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 src/components/tab_switcher/tab_switcher.jsx

(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
new file mode 100644
index 00000000..0a6eec11
--- /dev/null
+++ b/src/components/tab_switcher/tab_switcher.jsx
@@ -0,0 +1,44 @@
+import Vue from 'vue'
+
+import './tab_switcher.scss'
+
+export default Vue.component('tab-switcher', {
+  name: 'TabSwitcher',
+  data () {
+    return {
+      active: 0
+    }
+  },
+  methods: {
+    activateTab(index) {
+      return () => this.active = index;
+    }
+  },
+  render(h) {
+    const tabs = this.$slots.default
+          .filter(slot => slot.data)
+          .map((slot, index) => {
+            const classes = ['tab']
+
+            if (index === this.active) {
+              classes.push('active')
+            }
+            return (<button onClick={this.activateTab(index)} class={ classes.join(' ') }>{slot.data.attrs.title}</button>)
+          });
+    const contents = (
+      <div>
+        {this.$slots.default.filter(slot => slot.data)[this.active]}
+      </div>
+    );
+    return (
+      <div class="tab-switcher">
+        <div class="tabs">
+          {tabs}
+        </div>
+        <div class="contents">
+          {contents}
+        </div>
+      </div>
+    )
+  }
+})
-- 
cgit v1.2.3-70-g09d2


From 66a22762c21f652342ca2421f732650c261abc02 Mon Sep 17 00:00:00 2001
From: Henry Jameson <me@hjkos.com>
Date: Tue, 28 Aug 2018 16:22:49 +0300
Subject: fixup! Separated tab-switcher into a reusable component. This depends
 on JSX addition

---
 src/components/settings/settings.vue           | 6 +++---
 src/components/tab_switcher/tab_switcher.jsx   | 2 +-
 src/components/user_settings/user_settings.vue | 6 +++---
 3 files changed, 7 insertions(+), 7 deletions(-)

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

diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue
index 2f70c209..c92602b7 100644
--- a/src/components/settings/settings.vue
+++ b/src/components/settings/settings.vue
@@ -5,7 +5,7 @@
   </div>
   <div class="panel-body">
     <tab-switcher>
-      <div :title="$t('settings.general')" >
+      <div :label="$t('settings.general')" >
         <div class="setting-item">
           <h2>{{ $t('settings.interfaceLanguage') }}</h2>
           <interface-language-switcher />
@@ -73,13 +73,13 @@
         </div>
       </div>
 
-      <div :title="$t('settings.theme')" >
+      <div :label="$t('settings.theme')" >
         <div class="setting-item">
           <style-switcher></style-switcher>
         </div>
       </div>
 
-      <div :title="$t('settings.filtering')" >
+      <div :label="$t('settings.filtering')" >
         <div class="setting-item">
           {{$t('settings.replies_in_timeline')}}
           <label for="replyVisibility" class="select">
diff --git a/src/components/tab_switcher/tab_switcher.jsx b/src/components/tab_switcher/tab_switcher.jsx
index 0a6eec11..3fff38f6 100644
--- a/src/components/tab_switcher/tab_switcher.jsx
+++ b/src/components/tab_switcher/tab_switcher.jsx
@@ -23,7 +23,7 @@ export default Vue.component('tab-switcher', {
             if (index === this.active) {
               classes.push('active')
             }
-            return (<button onClick={this.activateTab(index)} class={ classes.join(' ') }>{slot.data.attrs.title}</button>)
+            return (<button onClick={this.activateTab(index)} class={ classes.join(' ') }>{slot.data.attrs.label}</button>)
           });
     const contents = (
       <div>
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index 64627d92..9daafdce 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -5,7 +5,7 @@
     </div>
     <div class="panel-body profile-edit">
       <tab-switcher>
-        <div :title="$t('settings.profile_tab')">
+        <div :label="$t('settings.profile_tab')">
           <div class="setting-item" >
             <h2>{{$t('settings.name_bio')}}</h2>
             <p>{{$t('settings.name')}}</p>
@@ -66,7 +66,7 @@
           </div>
         </div>
 
-        <div :title="$t('settings.security_tab')">
+        <div :label="$t('settings.security_tab')">
           <div class="setting-item">
             <h2>{{$t('settings.change_password')}}</h2>
             <div>
@@ -102,7 +102,7 @@
           </div>
         </div>
 
-        <div :title="$t('settings.data_import_export_tab')" v-if="pleromaBackend">
+        <div :label="$t('settings.data_import_export_tab')" v-if="pleromaBackend">
           <div class="setting-item">
             <h2>{{$t('settings.follow_import')}}</h2>
             <p>{{$t('settings.import_followers_from_a_csv_file')}}</p>
-- 
cgit v1.2.3-70-g09d2

