* Enhancement: Updates sidebar to a new design (#2733) * feat: Changes primary navbar to new design (#2598) * feat: updates design for secondary navbar (#2612) * Changes primary nvbar to new design * Updates design for contexual sidebar * Fixes issues with JSON * Remove duplication of notificatons in Navigation * Fixes broken tests * Fixes broken tests * Update app/javascript/dashboard/components/layout/AvailabilityStatus.vue * Update app/javascript/dashboard/components/layout/AvailabilityStatus.vue * Update app/javascript/dashboard/components/layout/SidebarItem.vue Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> * Update app/javascript/dashboard/components/layout/SidebarItem.vue Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> * Update app/javascript/dashboard/modules/sidebar/components/Secondary.vue Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> * Chore: Update design changes to features * Fixes menu transitions and refactors code * Refactors sidebar routeing logic * lint error fixes * Fixes dropdown menu styles * Fixes secondary new item links * Fixes lint scss issues * fixes linter issues * Fixes broken test cases * Update AvailabilityStatus.spec.js * Review feedbacks * Fixes add modal for label * Add tooltip for primary menu item * Tooltip for notifications * Adds tooltip for primary menu items * Review fixes * Review fixes * Fix merge issues * fixes logo size for login pages * fixes Merge breaks with styles Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Co-authored-by: Pranav Raj S <pranav@chatwoot.com>
79 lines
1.9 KiB
Vue
79 lines
1.9 KiB
Vue
<template>
|
|
<div class="row app-wrapper">
|
|
<sidebar :route="currentRoute" :class="sidebarClassName"></sidebar>
|
|
<section class="app-content columns" :class="contentClassName">
|
|
<router-view></router-view>
|
|
<command-bar />
|
|
</section>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import Sidebar from '../../components/layout/Sidebar';
|
|
import CommandBar from './commands/commandbar.vue';
|
|
import { BUS_EVENTS } from 'shared/constants/busEvents';
|
|
|
|
export default {
|
|
components: {
|
|
Sidebar,
|
|
CommandBar,
|
|
},
|
|
data() {
|
|
return {
|
|
isSidebarOpen: false,
|
|
isOnDesktop: true,
|
|
};
|
|
},
|
|
computed: {
|
|
currentRoute() {
|
|
return ' ';
|
|
},
|
|
sidebarClassName() {
|
|
if (this.isOnDesktop) {
|
|
return '';
|
|
}
|
|
if (this.isSidebarOpen) {
|
|
return 'off-canvas position-left is-transition-push is-open';
|
|
}
|
|
return 'off-canvas is-transition-push is-closed';
|
|
},
|
|
contentClassName() {
|
|
if (this.isOnDesktop) {
|
|
return '';
|
|
}
|
|
if (this.isSidebarOpen) {
|
|
return 'off-canvas-content is-open-left has-transition-push has-position-left';
|
|
}
|
|
return 'off-canvas-content has-transition-push';
|
|
},
|
|
},
|
|
mounted() {
|
|
this.$store.dispatch('setCurrentAccountId', this.$route.params.accountId);
|
|
window.addEventListener('resize', this.handleResize);
|
|
this.handleResize();
|
|
bus.$on(BUS_EVENTS.TOGGLE_SIDEMENU, this.toggleSidebar);
|
|
},
|
|
beforeDestroy() {
|
|
bus.$off(BUS_EVENTS.TOGGLE_SIDEMENU, this.toggleSidebar);
|
|
window.removeEventListener('resize', this.handleResize);
|
|
},
|
|
methods: {
|
|
handleResize() {
|
|
if (window.innerWidth > 1200) {
|
|
this.isOnDesktop = true;
|
|
} else {
|
|
this.isOnDesktop = false;
|
|
}
|
|
},
|
|
toggleSidebar() {
|
|
this.isSidebarOpen = !this.isSidebarOpen;
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
.off-canvas-content.is-open-left {
|
|
transform: translateX(25.4rem);
|
|
}
|
|
</style>
|