commit: fd77c583bf18be81b628d92b1f95cc14a2d9c09d
parent aa0b2e07233f4370497ab01e05bb6b913ee6efa5
Author: HJ <30-hj@users.noreply.git.pleroma.social>
Date: Fri, 25 Mar 2022 13:22:06 +0000
Merge branch 'from/develop/tusooa/fix-overlap-button' into 'develop'
Fix overlapping buttons in Theme settings
See merge request pleroma/pleroma-fe!1488
Diffstat:
6 files changed, 55 insertions(+), 29 deletions(-)
diff --git 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
@@ -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
@@ -378,6 +378,10 @@ 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
+ 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
@@ -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;
}
+ .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: 10em;
- padding: 0 2em;
+ min-width: 0;
+ max-width: 10em;
+ padding: 0;
}
}
-
- .btn {
- margin-left: .25em;
- margin-right: .25em;
- }
}
diff --git 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
@@ -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'
},