From eabe7b25852f04dcc2ca7324406bfa32ae7fc817 Mon Sep 17 00:00:00 2001
From: jacobherrington <jacobherringtondeveloper@gmail.com>
Date: Fri, 21 Jun 2019 18:19:49 -0500
Subject: [PATCH] Change button copy on theme preview

This commit makes the dark mode preview feel a little more interactive
and it also pulls some duplicated code into one file so that people like
me aren't stumped when they are looking at the wrong page!
---
 assets/js/dark-mode-preview.js | 23 +++++++++++++++++++++++
 docs/configuration.md          | 15 +--------------
 docs/customization.md          | 15 +--------------
 3 files changed, 25 insertions(+), 28 deletions(-)
 create mode 100644 assets/js/dark-mode-preview.js

diff --git a/assets/js/dark-mode-preview.js b/assets/js/dark-mode-preview.js
new file mode 100644
index 00000000..addfb27c
--- /dev/null
+++ b/assets/js/dark-mode-preview.js
@@ -0,0 +1,23 @@
+document.addEventListener("DOMContentLoaded", function(){
+
+  const toggleDarkMode = document.querySelector('.js-toggle-dark-mode')
+  const cssFile = document.querySelector('[rel="stylesheet"]')
+  const originalCssRef = cssFile.getAttribute('href')
+  const darkModeCssRef = originalCssRef.replace('just-the-docs.css', 'dark-mode-preview.css')
+  const buttonCopy = ['Return to the light side', 'Preview dark color scheme']
+  const updateButtonText = function(toggleDarkMode) {
+    toggleDarkMode.textContent === buttonCopy[0] ?
+      toggleDarkMode.textContent = buttonCopy[1] :
+      toggleDarkMode.textContent = buttonCopy[0]
+  }
+
+  addEvent(toggleDarkMode, 'click', function(){
+    if (cssFile.getAttribute('href') === originalCssRef) {
+      cssFile.setAttribute('href', darkModeCssRef)
+      updateButtonText(toggleDarkMode)
+    } else {
+      cssFile.setAttribute('href', originalCssRef)
+      updateButtonText(toggleDarkMode)
+    }
+  })
+})
\ No newline at end of file
diff --git a/docs/configuration.md b/docs/configuration.md
index 4a4caef0..cc4b92a6 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -46,20 +46,7 @@ color_scheme: "dark"
 ```
 <button class="btn js-toggle-dark-mode">Preview dark color scheme</button>
 
-<script>
-const toggleDarkMode = document.querySelector('.js-toggle-dark-mode')
-const cssFile = document.querySelector('[rel="stylesheet"]')
-const originalCssRef = cssFile.getAttribute('href')
-const darkModeCssRef = originalCssRef.replace('just-the-docs.css', 'dark-mode-preview.css')
-
-addEvent(toggleDarkMode, 'click', function(){
-  if (cssFile.getAttribute('href') === originalCssRef) {
-    cssFile.setAttribute('href', darkModeCssRef)
-  } else {
-    cssFile.setAttribute('href', originalCssRef)
-  }
-})
-</script>
+<script type="text/javascript" src="{{ "/assets/js/dark-mode-preview.js" | absolute_url }}"></script>
 
 See [Customization]({{ site.baseurl }}{% link docs/customization.md %}) for more information.
 
diff --git a/docs/customization.md b/docs/customization.md
index f3fe1c03..af9d29e3 100644
--- a/docs/customization.md
+++ b/docs/customization.md
@@ -34,20 +34,7 @@ color_scheme: "dark"
 ```
 <button class="btn js-toggle-dark-mode">Preview dark color scheme</button>
 
-<script>
-const toggleDarkMode = document.querySelector('.js-toggle-dark-mode')
-const cssFile = document.querySelector('[rel="stylesheet"]')
-const originalCssRef = cssFile.getAttribute('href')
-const darkModeCssRef = originalCssRef.replace('just-the-docs.css', 'dark-mode-preview.css')
-
-addEvent(toggleDarkMode, 'click', function(){
-  if (cssFile.getAttribute('href') === originalCssRef) {
-    cssFile.setAttribute('href', darkModeCssRef)
-  } else {
-    cssFile.setAttribute('href', originalCssRef)
-  }
-})
-</script>
+<script type="text/javascript" src="{{ "/assets/js/dark-mode-preview.js" | absolute_url }}"></script>
 
 ## Specific visual customization
 
-- 
GitLab