From db0e1a253463b7566dcab158b7e5cd5d203382ef Mon Sep 17 00:00:00 2001
From: Pleroma Renovate Bot <contact+pleroma-renovator@hacktivis.me>
Date: Wed, 23 Mar 2022 09:05:04 +0000
Subject: [PATCH 1/4] Update dependency babel-loader to v8.2.4

---
 package.json |  2 +-
 yarn.lock    | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/package.json b/package.json
index f79be030..f7c8c611 100644
--- a/package.json
+++ b/package.json
@@ -53,7 +53,7 @@
     "@vue/test-utils": "1.0.0-beta.28",
     "autoprefixer": "6.7.7",
     "babel-eslint": "7.2.3",
-    "babel-loader": "8.2.3",
+    "babel-loader": "8.2.4",
     "babel-plugin-lodash": "3.3.4",
     "chai": "3.5.0",
     "chalk": "1.1.3",
diff --git a/yarn.lock b/yarn.lock
index ad01035d..29720bdc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2006,13 +2006,13 @@ babel-helpers@^6.24.1:
     babel-runtime "^6.22.0"
     babel-template "^6.24.1"
 
-babel-loader@8.2.3:
-  version "8.2.3"
-  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d"
-  integrity sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==
+babel-loader@8.2.4:
+  version "8.2.4"
+  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.4.tgz#95f5023c791b2e9e2ca6f67b0984f39c82ff384b"
+  integrity sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==
   dependencies:
     find-cache-dir "^3.3.1"
-    loader-utils "^1.4.0"
+    loader-utils "^2.0.0"
     make-dir "^3.1.0"
     schema-utils "^2.6.5"
 
@@ -5929,7 +5929,7 @@ loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0:
     emojis-list "^2.0.0"
     json5 "^1.0.1"
 
-loader-utils@^1.2.3, loader-utils@^1.4.0:
+loader-utils@^1.2.3:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
   integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==

From 20c14a1d991403e0a7750ce05ba9d70799440505 Mon Sep 17 00:00:00 2001
From: Pleroma Renovate Bot <contact+pleroma-renovator@hacktivis.me>
Date: Thu, 24 Mar 2022 09:05:00 +0000
Subject: [PATCH 2/4] Update dependency ruffle-mirror to v2021.12.31

---
 package.json | 2 +-
 yarn.lock    | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/package.json b/package.json
index f7c8c611..7cd94066 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,7 @@
     "phoenix": "1.4.0",
     "portal-vue": "2.1.7",
     "punycode.js": "2.1.0",
-    "ruffle-mirror": "2021.4.11",
+    "ruffle-mirror": "2021.12.31",
     "v-click-outside": "2.1.5",
     "vue": "2.6.11",
     "vue-i18n": "7.8.1",
diff --git a/yarn.lock b/yarn.lock
index 29720bdc..ae8628e9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -8523,10 +8523,10 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
     hash-base "^3.0.0"
     inherits "^2.0.1"
 
-ruffle-mirror@2021.4.11:
-  version "2021.4.11"
-  resolved "https://registry.yarnpkg.com/ruffle-mirror/-/ruffle-mirror-2021.4.11.tgz#039940e0a68e6849259dbef6b54fb877ac4373e7"
-  integrity sha512-a3N2OkPCJauiHBloHoZgCn/mSUlybyb9Ps4ikPGgHUy8iXPy6qMqh62imvNDU07tBJc5Y0c5mRHBFJRgpMgEpA==
+ruffle-mirror@2021.12.31:
+  version "2021.12.31"
+  resolved "https://registry.yarnpkg.com/ruffle-mirror/-/ruffle-mirror-2021.12.31.tgz#d5ece0ff164d98468d84eb7cba3e69abff4c0687"
+  integrity sha512-kilyYstBQ+ZQY44IvUHhMt8Uh1yQJ8B+6GdzA1FzErgJy+5mnaLUBtU8JEG7cSrW3QLdFQLhRSeh8lLDINXgSA==
 
 run-async@^2.2.0:
   version "2.3.0"

From e58422889bbc6857c7f171978bb89da013284507 Mon Sep 17 00:00:00 2001
From: Tusooa Zhu <tusooa@kazv.moe>
Date: Thu, 24 Mar 2022 18:01:20 -0400
Subject: [PATCH 3/4] Fix overlapping buttons in Theme settings

---
 .../settings_modal/settings_modal.scss        |  5 +++
 .../settings_modal/settings_modal.vue         |  4 +++
 .../tabs/theme_tab/theme_tab.js               |  5 +++
 .../tabs/theme_tab/theme_tab.scss             | 32 +++++++++--------
 .../tabs/theme_tab/theme_tab.vue              | 35 +++++++++++--------
 src/components/tab_switcher/tab_switcher.js   |  6 ++++
 6 files changed, 57 insertions(+), 30 deletions(-)

diff --git a/src/components/settings_modal/settings_modal.scss b/src/components/settings_modal/settings_modal.scss
index fb466f2f..2f7649a9 100644
--- a/src/components/settings_modal/settings_modal.scss
+++ b/src/components/settings_modal/settings_modal.scss
@@ -54,5 +54,10 @@
     >* {
       margin-right: 0.5em;
     }
+
+    .extra-content {
+      display: flex;
+      flex-grow: 1;
+    }
   }
 }
diff --git a/src/components/settings_modal/settings_modal.vue b/src/components/settings_modal/settings_modal.vue
index 1805c77f..b8de7e7e 100644
--- a/src/components/settings_modal/settings_modal.vue
+++ b/src/components/settings_modal/settings_modal.vue
@@ -112,6 +112,10 @@
         <Checkbox v-model="expertLevel">
           {{ $t("settings.expert_mode") }}
         </Checkbox>
+        <portal-target
+          class="extra-content"
+          name="unscrolled-content"
+        />
       </div>
     </div>
   </Modal>
diff --git a/src/components/settings_modal/tabs/theme_tab/theme_tab.js b/src/components/settings_modal/tabs/theme_tab/theme_tab.js
index 0b6669fc..c3ed3059 100644
--- a/src/components/settings_modal/tabs/theme_tab/theme_tab.js
+++ b/src/components/settings_modal/tabs/theme_tab/theme_tab.js
@@ -378,6 +378,11 @@ export default {
         // To separate from other random JSON files and possible future source formats
         _pleroma_theme_version: 2, theme, source
       }
+    },
+    isActive () {
+      const tabSwitcher = this.$parent
+      console.log(this.$parent)
+      return tabSwitcher ? tabSwitcher.isActive('theme') : false
     }
   },
   components: {
diff --git a/src/components/settings_modal/tabs/theme_tab/theme_tab.scss b/src/components/settings_modal/tabs/theme_tab/theme_tab.scss
index 0db21537..21b49a32 100644
--- a/src/components/settings_modal/tabs/theme_tab/theme_tab.scss
+++ b/src/components/settings_modal/tabs/theme_tab/theme_tab.scss
@@ -268,13 +268,6 @@
     }
   }
 
-  .apply-container {
-    justify-content: center;
-    position: absolute;
-    bottom: 8px;
-    right: 5px;
-  }
-
   .radius-item,
   .color-item {
     min-width: 20em;
@@ -334,16 +327,25 @@
     padding: 20px;
   }
 
-  .apply-container {
-    .btn {
-      min-height: 28px;
-      min-width: 10em;
-      padding: 0 2em;
-    }
-  }
-
   .btn {
     margin-left: .25em;
     margin-right: .25em;
   }
 }
+
+.extra-content {
+  .apply-container {
+    display: flex;
+    flex-direction: row;
+    justify-content: space-around;
+    flex-grow: 1;
+
+    .btn {
+      flex-grow: 1;
+      min-height: 28px;
+      min-width: 0;
+      max-width: 10em;
+      padding: 0;
+    }
+  }
+}
diff --git a/src/components/settings_modal/tabs/theme_tab/theme_tab.vue b/src/components/settings_modal/tabs/theme_tab/theme_tab.vue
index c02986ed..c32f9353 100644
--- a/src/components/settings_modal/tabs/theme_tab/theme_tab.vue
+++ b/src/components/settings_modal/tabs/theme_tab/theme_tab.vue
@@ -1016,21 +1016,26 @@
       </tab-switcher>
     </keep-alive>
 
-    <div class="apply-container">
-      <button
-        class="btn button-default submit"
-        :disabled="!themeValid"
-        @click="setCustomTheme"
-      >
-        {{ $t('general.apply') }}
-      </button>
-      <button
-        class="btn button-default"
-        @click="clearAll"
-      >
-        {{ $t('settings.style.switcher.reset') }}
-      </button>
-    </div>
+    <portal
+      v-if="isActive"
+      to="unscrolled-content"
+    >
+      <div class="apply-container">
+        <button
+          class="btn button-default submit"
+          :disabled="!themeValid"
+          @click="setCustomTheme"
+        >
+          {{ $t('general.apply') }}
+        </button>
+        <button
+          class="btn button-default"
+          @click="clearAll"
+        >
+          {{ $t('settings.style.switcher.reset') }}
+        </button>
+      </div>
+    </portal>
   </div>
 </template>
 
diff --git a/src/components/tab_switcher/tab_switcher.js b/src/components/tab_switcher/tab_switcher.js
index 12aac8e6..d2a7f5c5 100644
--- a/src/components/tab_switcher/tab_switcher.js
+++ b/src/components/tab_switcher/tab_switcher.js
@@ -47,6 +47,12 @@ export default Vue.component('tab-switcher', {
         return this.active
       }
     },
+    isActive () {
+      return tabName => {
+        const isWanted = slot => slot.data && slot.data.attrs['data-tab-name'] === tabName
+        return this.$slots.default.findIndex(isWanted) === this.activeIndex
+      }
+    },
     settingsModalVisible () {
       return this.settingsModalState === 'visible'
     },

From b319c0c72b5d4da224492574865a78fd624bf206 Mon Sep 17 00:00:00 2001
From: HJ <30-hj@users.noreply.git.pleroma.social>
Date: Fri, 25 Mar 2022 13:17:22 +0000
Subject: [PATCH 4/4] Remove debugging code

---
 src/components/settings_modal/tabs/theme_tab/theme_tab.js | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/components/settings_modal/tabs/theme_tab/theme_tab.js b/src/components/settings_modal/tabs/theme_tab/theme_tab.js
index c3ed3059..6d140b6c 100644
--- a/src/components/settings_modal/tabs/theme_tab/theme_tab.js
+++ b/src/components/settings_modal/tabs/theme_tab/theme_tab.js
@@ -381,7 +381,6 @@ export default {
     },
     isActive () {
       const tabSwitcher = this.$parent
-      console.log(this.$parent)
       return tabSwitcher ? tabSwitcher.isActive('theme') : false
     }
   },