From f09c456c112e3b76b98c118ab4129750e8292a94 Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Sun, 20 Jun 2021 15:05:17 +0200
Subject: [PATCH] Remove b-tabs

---
 .../assets/vue/components/MessagesTable.vue   | 65 ++++++++++++-------
 .../apimail/assets/vue/messages_table.js      |  4 --
 2 files changed, 40 insertions(+), 29 deletions(-)

diff --git a/scipost_django/apimail/static/apimail/assets/vue/components/MessagesTable.vue b/scipost_django/apimail/static/apimail/assets/vue/components/MessagesTable.vue
index 946b6ccc0..a27eabd89 100644
--- a/scipost_django/apimail/static/apimail/assets/vue/components/MessagesTable.vue
+++ b/scipost_django/apimail/static/apimail/assets/vue/components/MessagesTable.vue
@@ -535,31 +535,48 @@
       </div>
     </div>
 
-    <b-tabs
+    <ul
+      class="nav nav-tabs mt-4"
+      role="tablist"
       id="message-tabs"
-      v-model="tabIndex"
-      class="mt-4"
-      :key="tabsKey"
-      lazy
       >
-      <b-tab
+      <li
 	v-for="(message, index) in tabbedMessages"
-	:key="'tab-' + message.uuid"
+	class="nav-item"
+	role="presentation"
+	:key="'li-' + message.uuid"
 	>
-	<template v-slot:title>
+	<button
+	  class="nav-link"
+	  :class="tabIndex === index ? 'active' : ''"
+	  data-bs-toggle="tab"
+	  :data-bs-target="'#tab-' + message.uuid"
+	  type="button"
+	  role="tab"
+	  >
 	  {{ tabbedMessages.length - index }}
-	  <button
-	    v-if="!threadOf"
-	    type="button"
-	    class="btn btn-sm btn-light float-right ms-2 p-0"
-	    @click="closeTab(message.uuid)"
-	    >
-	    <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-x" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
-	      <path fill-rule="evenodd" d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/>
-	    </svg>
-	  </button>
-	  <br>
-	</template>
+	</button>
+	<button
+	  v-if="!threadOf"
+	  type="button"
+	  class="btn btn-sm btn-light float-right ms-2 p-0"
+	  @click="closeTab(message.uuid)"
+	  >
+	  <svg width="1em" height="1em" viewBox="0 0 16 16" class="bi bi-x" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
+	    <path fill-rule="evenodd" d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/>
+	  </svg>
+	</button>
+      </li>
+    </ul>
+
+    <div class="tab-content">
+      <div
+	v-for="(message, index) in tabbedMessages"
+	class="tab-pane fade"
+	:class="tabIndex === index ? 'show active' : ''"
+	:id="'tab-' + message.uuid"
+	role="tabpanel"
+	>
 	<div v-if="!threadOf">
 	  <button
 	    type="button"
@@ -575,8 +592,9 @@
 	  :accountSelected="accountSelected"
 	  class="m-2 mb-4">
 	</message-content>
-      </b-tab>
-    </b-tabs>
+      </div>
+    </div>
+
   </div>
 </div>
 </template>
@@ -656,7 +674,6 @@ export default {
 	    refreshMinutes: 1,
 	    refreshMinutesOptions: [ 1, 5, 15 ],
 	    tabIndex: 0,
-	    tabsKey: 0,
 	    tags: null,
 	    tagsRequired: [],
 	    resumeDraftModal: null
@@ -809,7 +826,6 @@ export default {
 	    	this.tabbedMessages.push(item)
 	    }
 	    this.tabIndex = this.indexInTabbedMessages(item.uuid)
-	    this.tabsKey = 1 - this.tabsKey // force re-render of b-tabs id="message-tabs"
 	},
 	focusOnThread (uuid) {
 	    this.threadOf = uuid
@@ -890,7 +906,6 @@ export default {
 	tabbedMessages: function () {
 	    if (this.threadOf) {
 		this.tabIndex = this.indexInTabbedMessages(this.threadOf)
-		this.tabsKey = 1 - this.tabsKey // force re-render of b-tabs id="message-tabs"
 	    }
 	},
 	refreshMinutes: function () {
diff --git a/scipost_django/apimail/static/apimail/assets/vue/messages_table.js b/scipost_django/apimail/static/apimail/assets/vue/messages_table.js
index 41fc45b43..ef009be2b 100644
--- a/scipost_django/apimail/static/apimail/assets/vue/messages_table.js
+++ b/scipost_django/apimail/static/apimail/assets/vue/messages_table.js
@@ -7,8 +7,6 @@ import {
     BInputGroup, BInputGroupAppend,
     // Pagination,
     BPagination,
-    // Tabs
-    TabsPlugin,
     // Tables
     TablePlugin,
 } from 'bootstrap-vue';
@@ -28,8 +26,6 @@ Vue.component('b-input-group-append', BInputGroupAppend)
 Vue.component('b-pagination', BPagination)
 // Tables
 Vue.use(TablePlugin)
-// Tabs
-Vue.use(TabsPlugin)
 
 
 // Style
-- 
GitLab