From ffcd4c63cc3dcbd39ccb2eafdd1e59f65cac1f2e Mon Sep 17 00:00:00 2001 From: wagesj45 Date: Tue, 11 Aug 2020 02:00:14 -0500 Subject: [PATCH] Update 'custom.js' --- custom.js | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) diff --git a/custom.js b/custom.js index 7df887e..58bdc87 100644 --- a/custom.js +++ b/custom.js @@ -1 +1,87 @@ -//Add your script \ No newline at end of file +const darkModeDefault = false; + +const darkModeSymbol = ` + +`; // moon icon +const lightModeSymbol = ` + + + + + + + + + +`; // sun icon + +const darkModeToggleText = { + 'en': 'Toggle Dark Mode', + 'de': 'Dark Mode umschalten', + 'fr': 'Toggle Dark Mode', + 'es': 'Toggle Dark Mode', + 'it': 'Toggle Dark Mode', + 'nl': 'Toggle Dark Mode', + 'pl': 'Toggle Dark Mode', + 'pt': 'Toggle Dark Mode', + 'ru': 'Смена оформления' +}[defaultUserLanguage()] || 'Toggle Dark Mode'; + +const toggleButton = ``; + +function isDarkModeSet() { + return localStorage.getItem('dark-mode') === 'true'; +} + +function getDarkModeIcon() { + return ``; +} + +function toggleDarkMode() { + document.body.classList.toggle('dark-mode'); + const setting = (!isDarkModeSet()).toString(); + localStorage.setItem('dark-mode', setting); +} + +function addDarkModeToggle() { + const sidebarToolbar = $('.sidebar__toolbar'); + + // wait for the sidebar toolbar to be visible + // this will also be false if the toolbar doesn't exist yet + if(!sidebarToolbar.is(':visible')) { + setTimeout(addDarkModeToggle, 250); + return; + } + + var darkModeButton = $(`.js-button[aria-label="${darkModeToggleText}"]`); + + // do nothing if button is already on the screen + if (darkModeButton.is(':visible')) { + return; + } + + darkModeButton = $(toggleButton).prependTo(sidebarToolbar); + darkModeButton.html(getDarkModeIcon()); + + darkModeButton.on('click', function() { + toggleDarkMode(); + darkModeButton.html(getDarkModeIcon()); + $(this).blur(); + }); +} + +if (darkModeDefault) { + if (localStorage.getItem("dark-mode") === null) { + localStorage.setItem('dark-mode', 'true'); + } +} + +$(addDarkModeToggle); + +// Apply dark mode immediately if it's been set previously +if(localStorage.getItem('dark-mode') === 'true') { + document.body.classList.add('dark-mode'); +} \ No newline at end of file