forked from AkkomaGang/akkoma-fe
Get rid of the js to scale sidepanel, add an additional div and a css class to fix the same issue.
This commit is contained in:
parent
d7e4279c59
commit
4cc73cfe21
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})` } },
|
||||
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`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
12
src/App.scss
12
src/App.scss
|
@ -190,7 +190,7 @@ nav {
|
|||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
.sidebar-bounds {
|
||||
flex: 0;
|
||||
flex-basis: 35%;
|
||||
}
|
||||
|
@ -221,21 +221,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;
|
||||
|
|
14
src/App.vue
14
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>
|
||||
|
|
Loading…
Reference in a new issue