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
This commit is contained in:
commit
7403c6c3dc
3 changed files with 16 additions and 33 deletions
23
src/App.js
23
src/App.js
|
@ -23,18 +23,6 @@ export default {
|
||||||
style () { return { 'background-image': `url(${this.background})` } },
|
style () { return { 'background-image': `url(${this.background})` } },
|
||||||
sitename () { return this.$store.state.config.name }
|
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: {
|
methods: {
|
||||||
activatePanel (panelName) {
|
activatePanel (panelName) {
|
||||||
this.mobileActivePanel = panelName
|
this.mobileActivePanel = panelName
|
||||||
|
@ -44,17 +32,6 @@ export default {
|
||||||
},
|
},
|
||||||
logout () {
|
logout () {
|
||||||
this.$store.dispatch('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`
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
12
src/App.scss
12
src/App.scss
|
@ -191,7 +191,7 @@ nav {
|
||||||
flex-shrink: 1;
|
flex-shrink: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar {
|
.sidebar-bounds {
|
||||||
flex: 0;
|
flex: 0;
|
||||||
flex-basis: 35%;
|
flex-basis: 35%;
|
||||||
}
|
}
|
||||||
|
@ -222,21 +222,25 @@ nav {
|
||||||
body {
|
body {
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
}
|
}
|
||||||
.sidebar {
|
.sidebar-bounds {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
max-height: 100vh;
|
max-height: 100vh;
|
||||||
width: 345px;
|
width: 345px;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
margin-top: -10px;
|
margin-top: -10px;
|
||||||
|
|
||||||
.sidebar-container {
|
.sidebar-scroller {
|
||||||
height: 96vh;
|
height: 96vh;
|
||||||
width: 365px;
|
width: 365px;
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
padding-right: 20px;
|
padding-right: 50px;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
width: 345px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.sidebar-flexer {
|
.sidebar-flexer {
|
||||||
max-height: 96vh;
|
max-height: 96vh;
|
||||||
|
|
14
src/App.vue
14
src/App.vue
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div id="app" v-bind:style="style" class="base02-background">
|
<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='inner-nav' :style="logoStyle">
|
||||||
<div class='item'>
|
<div class='item'>
|
||||||
<router-link :to="{ name: 'root'}">{{sitename}}</router-link>
|
<router-link :to="{ name: 'root'}">{{sitename}}</router-link>
|
||||||
|
@ -18,11 +18,13 @@
|
||||||
<button @click="activatePanel('timeline')" class="base01-background base04">Timeline</button>
|
<button @click="activatePanel('timeline')" class="base01-background base04">Timeline</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="sidebar-flexer" :class="{ 'mobile-hidden': mobileActivePanel != 'sidebar'}">
|
<div class="sidebar-flexer" :class="{ 'mobile-hidden': mobileActivePanel != 'sidebar'}">
|
||||||
<div class="sidebar" :class="{ 'mobile-hidden': mobileActivePanel != 'sidebar' }">
|
<div class="sidebar-bounds">
|
||||||
<div class="sidebar-container" id="sidebar-container">
|
<div class="sidebar-scroller">
|
||||||
<user-panel></user-panel>
|
<div class="sidebar">
|
||||||
<nav-panel></nav-panel>
|
<user-panel></user-panel>
|
||||||
<notifications v-if="currentUser"></notifications>
|
<nav-panel></nav-panel>
|
||||||
|
<notifications v-if="currentUser"></notifications>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue