commit: 7403c6c3dcad9bcf31bb11c271a1ea7d4225c2af
parent: 03190ab124253f30ddce40c6541afe6154b58339
Author: lambda <pleromagit@rogerbraun.net>
Date: Mon, 13 Nov 2017 10:57:33 +0000
Merge branch 'fix/replace-sidepanel-scroll-js-with-css' into 'develop'
Get rid of the js to scale sidepanel, add an additional div and a css class to fix the same issue.
See merge request pleroma/pleroma-fe!156
Diffstat:
3 files changed, 16 insertions(+), 33 deletions(-)
diff --git a/src/App.js b/src/App.js
@@ -23,18 +23,6 @@ export default {
style () { return { 'background-image': `url(${this.background})` } },
sitename () { return this.$store.state.config.name }
},
- created () {
- // this is to detect user zooming mostly
- window.addEventListener('resize', this.fixSidebarWidth)
- },
- mounted () {
- // for some reason, at least in dev mode, dom is not ready enough at this point
- // in theory calling the function directly here should be enough, but it's not
- setTimeout(() => { this.fixSidebarWidth() }, 500)
- },
- destroyed () {
- window.removeEventListener('resize', this.fixSidebarWidth)
- },
methods: {
activatePanel (panelName) {
this.mobileActivePanel = panelName
@@ -44,17 +32,6 @@ export default {
},
logout () {
this.$store.dispatch('logout')
- },
- fixSidebarWidth () {
- // firefox
- let barwidth = window.innerWidth - document.body.offsetWidth
- if (document.body.offsetWidth <= 0) {
- // chromium
- barwidth = window.innerWidth - document.body.scrollWidth
- }
- // adjust the sidebar size to fit the scrollbar width to keep the gap consistently sized
- document.getElementById('sidebar-container').style.width = `${345 + barwidth}px`
- document.getElementById('sidebar-container').style.paddingRight = `${barwidth}px`
}
}
}
diff --git a/src/App.scss b/src/App.scss
@@ -191,7 +191,7 @@ nav {
flex-shrink: 1;
}
-.sidebar {
+.sidebar-bounds {
flex: 0;
flex-basis: 35%;
}
@@ -222,21 +222,25 @@ nav {
body {
overflow-y: scroll;
}
- .sidebar {
+ .sidebar-bounds {
overflow: hidden;
max-height: 100vh;
width: 345px;
position: fixed;
margin-top: -10px;
- .sidebar-container {
+ .sidebar-scroller {
height: 96vh;
width: 365px;
padding-top: 10px;
- padding-right: 20px;
+ padding-right: 50px;
overflow-x: hidden;
overflow-y: scroll;
}
+
+ .sidebar {
+ width: 345px;
+ }
}
.sidebar-flexer {
max-height: 96vh;
diff --git a/src/App.vue b/src/App.vue
@@ -1,6 +1,6 @@
<template>
<div id="app" v-bind:style="style" class="base02-background">
- <nav class='container base01-background base04' @click="scrollToTop()">
+ <nav class='container base01-background base04' @click="scrollToTop()" id="nav">
<div class='inner-nav' :style="logoStyle">
<div class='item'>
<router-link :to="{ name: 'root'}">{{sitename}}</router-link>
@@ -18,11 +18,13 @@
<button @click="activatePanel('timeline')" class="base01-background base04">Timeline</button>
</div>
<div class="sidebar-flexer" :class="{ 'mobile-hidden': mobileActivePanel != 'sidebar'}">
- <div class="sidebar" :class="{ 'mobile-hidden': mobileActivePanel != 'sidebar' }">
- <div class="sidebar-container" id="sidebar-container">
- <user-panel></user-panel>
- <nav-panel></nav-panel>
- <notifications v-if="currentUser"></notifications>
+ <div class="sidebar-bounds">
+ <div class="sidebar-scroller">
+ <div class="sidebar">
+ <user-panel></user-panel>
+ <nav-panel></nav-panel>
+ <notifications v-if="currentUser"></notifications>
+ </div>
</div>
</div>
</div>