Implemented toggler logic for expanding / contracting sidebar

Any element with `data-sidebar-toggle` will trigger the expansion / contraction of the sidebar.
This commit is contained in:
Djamil Legato
2016-03-07 15:51:33 -08:00
parent 1ec4e4e5f4
commit 11a659e4c6
5 changed files with 28 additions and 16 deletions

View File

@@ -18,11 +18,13 @@ export default class MobileSidebar {
enable() {
this.matchMedia.addListener(this._getBound('checkMatch'));
this.checkMatch(this.matchMedia);
$('body').on(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));
}
disable() {
this.close();
this.matchMedia.removeListener(this._getBound('checkMatch'));
$('body').off(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));
}
attach() {
@@ -35,21 +37,25 @@ export default class MobileSidebar {
open(event) {
event && event.preventDefault();
let overlay = $('#overlay');
let sidebar = $('#admin-sidebar');
$('#overlay').css('display', 'block');
$('#admin-sidebar').css('display', 'block').animate({
overlay.css('display', 'block');
sidebar.css('display', 'block').animate({
opacity: 1
}, 200, () => { this.isOpen = true; });
}
close(event) {
event && event.preventDefault();
let overlay = $('#overlay');
let sidebar = $('#admin-sidebar');
$('#overlay').css('display', 'none');
$('#admin-sidebar').animate({
overlay.css('display', 'none');
sidebar.animate({
opacity: 0
}, 200, () => {
$('#admin-sidebar').css('display', 'none');
sidebar.css('display', 'none');
this.isOpen = false;
});
}
@@ -59,6 +65,11 @@ export default class MobileSidebar {
return this[this.isOpen ? 'close' : 'open'](event);
}
toggleSidebarState() {
event && event.preventDefault();
$('body').toggleClass('sidebar-open');
}
checkMatch(data) {
let sidebar = $('#admin-sidebar');
let overlay = $('#overlay');

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
<nav id="admin-sidebar">
<div id="open-handle"><i class="fa fa-angle-double-right"></i></div>
<div id="open-handle" data-sidebar-toggle><i class="fa fa-angle-double-right"></i></div>
<div id="admin-logo">
{% include 'partials/logo.html.twig' %}
</div>