Merge pull request #213 from marshmalien/mobile-menu

Add mobile menu
This commit is contained in:
Marliana Lara 2017-09-25 14:24:41 -04:00 committed by GitHub
commit 2677a17c8a
6 changed files with 82 additions and 23 deletions

View File

@ -2327,4 +2327,4 @@ body {
.btn {
text-transform: uppercase;
}
}

View File

@ -84,7 +84,6 @@
&-side {
background: @at-color-side-nav-background;
color: @at-color-side-nav-content;
position: fixed;
bottom: 0;
top: @at-height-top-side-nav-makeup;
@ -94,11 +93,12 @@
z-index: @at-z-index-side-nav;
.at-Layout-sideNavItem {
background: inherit;
color: @at-color-side-nav-content;
display: flex;
cursor: pointer;
text-transform: uppercase;
> i.fa {
padding-left: 20px;
}
@ -123,6 +123,7 @@
}
.at-Layout-sideNavSpacer {
background: inherit;
height: @at-height-side-nav-spacer;
}
@ -173,3 +174,45 @@
}
}
}
@breakpoint-sm: 700px;
@media screen and (max-width: @breakpoint-sm) {
.at-Layout {
&-side {
top: 60px;
background-color: transparent;
.at-Layout-sideNavItem.at-Layout-sideNavToggle {
display: flex;
height: 40px;
align-items: center;
width: 55px;
}
.at-Layout-sideNavItem,
.at-Layout-sideNavSpacer {
display: none;
background-color: @at-color-side-nav-background;
}
&--expanded {
width: 100vw;
z-index: @at-z-index-side-nav;
.at-Layout-sideNavItem,
.at-Layout-sideNavSpacer {
display: flex;
}
}
}
.at-Layout-main {
padding-left: 0;
#content-container {
padding-top: 100px;
}
}
}
}

View File

@ -2,18 +2,39 @@ const templateUrl = require('~components/layout/side-nav.partial.html');
function atSideNavLink (scope, element, attrs, ctrl) {
scope.layoutVm = ctrl;
document.on('click', (e) => {
if ($(e.target).parents('.at-Layout-side').length === 0) {
scope.$emit('clickOutsideSideNav');
}
});
}
function AtSideNavController () {
const vm = this || {};
function AtSideNavController ($scope, $window) {
let vm = this || {};
const breakpoint = 700;
vm.isExpanded = false;
vm.toggleExpansion = () => {
vm.isExpanded = !vm.isExpanded;
};
$scope.$watch('layoutVm.currentState', () => {
if ($window.innerWidth <= breakpoint) {
vm.isExpanded = false;
}
});
$scope.$on('clickOutsideSideNav', () => {
if ($window.innerWidth <= breakpoint) {
vm.isExpanded = false;
}
});
}
AtSideNavController.$inject = ['$scope', '$window'];
function atSideNav () {
return {
restrict: 'E',

View File

@ -1,6 +1,6 @@
<div class="at-Layout-side"
ng-class="{'at-Layout-side--expanded': vm.isExpanded && layoutVm.isLoggedIn}">
<div class="at-Layout-sideNavItem" ng-click="vm.toggleExpansion()"
ng-class="{'at-Layout-side--expanded': vm.isExpanded && layoutVm.isLoggedIn}" ng-show="layoutVm.isLoggedIn && !layoutVm.licenseIsMissing">
<div class="at-Layout-sideNavItem at-Layout-sideNavToggle" ng-click="vm.toggleExpansion()"
ng-show="layoutVm.isLoggedIn && !layoutVm.licenseIsMissing">
<i class="fa fa-bars"></i>
</div>

View File

@ -85,6 +85,7 @@
}
@breadcrumb-breakpoint: 900px;
@breakpoint-sm: 700px;
@media screen and (max-width: @breadcrumb-breakpoint) {
.BreadCrumb-menuLinkImage {
@ -95,3 +96,11 @@
padding: 0 21px;
}
}
@media screen and (max-width: @breakpoint-sm) {
.BreadCrumb {
padding-left: 50px;
position: fixed;
z-index: 2;
}
}

View File

@ -1,4 +1,5 @@
let path = require('path');
const webpackConfig = require('../../../build/webpack.test.js');
module.exports = config => {
config.set({
@ -30,22 +31,7 @@ module.exports = config => {
return '/static/partials' + filepath;
}
},
webpack: {
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel',
exclude: /node_modules/
},
{
test: /\.json$/,
loader: 'json',
exclude: /node_modules/
},
]
}
},
webpack: webpackConfig,
webpackMiddleware: {
noInfo: 'errors-only'
}