From 32c578db083bf92a145728049343319990169726 Mon Sep 17 00:00:00 2001 From: Sheogorath Date: Fri, 23 Mar 2018 15:39:16 +0100 Subject: [PATCH] Persist nightmode so we can re-enable it Right now the night mode is possible to set by a toggle in the menu bar but needs to be re-enabled on every document switch, reload, etc.. This is super annoying so we should keep this state in local storage or a cookie. Signed-off-by: Sheogorath --- public/js/index.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/public/js/index.js b/public/js/index.js index 096f7fde4..68fb26147 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -16,6 +16,7 @@ import toMarkdown from 'to-markdown' import { saveAs } from 'file-saver' import randomColor from 'randomcolor' +import store from 'store' import _ from 'lodash' @@ -431,11 +432,12 @@ $(document).ready(function () { clearMap() } checkEditorStyle() + + /* cache dom references */ + var $body = $('body') + /* we need this only on touch devices */ if (isTouchDevice) { - /* cache dom references */ - var $body = $('body') - /* bind events */ $(document) .on('focus', 'textarea, input', function () { @@ -445,6 +447,12 @@ $(document).ready(function () { $body.removeClass('fixfixed') }) } + + // Re-enable nightmode + if (store.get('nightMode') || Cookies.get('nightMode')) { + $body.addClass('night') + } + // showup $().showUp('.navbar', { upClass: 'navbar-hide', @@ -1680,6 +1688,13 @@ function toggleNightMode () { $body.addClass('night') appState.nightMode = true } + if (store.enabled) { + store.set('nightMode', !isActive) + } else { + Cookies.set('nightMode', !isActive, { + expires: 365 + }) + } } function emitPermission (_permission) { if (_permission !== permission) {