Skip to content

Commit e8c8d43

Browse files
Merge pull request sujaykundu777#190 from Apezdr/theme-toggle
Fix Theme Light/Dark Toggling
2 parents 41fb346 + 8ab6556 commit e8c8d43

File tree

4 files changed

+42
-21
lines changed

4 files changed

+42
-21
lines changed

‎_includes/head.html‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
crossorigin="anonymous"
118118
></script>
119119
<!-- <script src="{{site.url}}{{site.baseurl}}/assets/bower_components/jquery/dist/jquery.min.js"></script> -->
120+
<script src="{{site.url}}{{site.baseurl}}/assets/js/mode-switcher.js"></script>
120121
<script src="{{site.url}}{{site.baseurl}}/assets/bower_components/jquery.easing/jquery.easing.min.js"></script>
121122
<script src="{{site.url}}{{site.baseurl}}/assets/bower_components/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
122123
<script src="{{site.url}}{{site.baseurl}}/assets/bower_components/jquery-mousewheel/jquery.mousewheel.min.js"></script>

‎_includes/header.html‎

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,13 @@
4949
</a>
5050
</li>
5151

52-
<!-- <li class="nav-item">
52+
<li class="nav-item">
5353
<input
54-
class="nav-link switch"
55-
id="theme-toggle"
56-
onclick="modeSwitcher()"
54+
class="nav-link switch theme-toggle"
5755
type="checkbox"
5856
name="checkbox"
5957
/>
60-
</li> -->
58+
</li>
6159
</ul>
6260
</nav>
6361
<div id="progress-bar"></div>

‎_layouts/default.html‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727

2828
<div hidden id="snipcart" data-api-key="Y2I1NTAyNWYtMTNkMy00ODg0LWE4NDItNTZhYzUxNzJkZTI5NjM3MDI4NTUzNzYyMjQ4NzU0"></div>
2929
<script src="https://cdn.snipcart.com/themes/v3.0.0-beta.3/default/snipcart.js" defer></script>
30-
<script src="{{site.url}}{{site.baseurl}}/assets/js/mode-switcher.js"></script>
3130
<script>
3231
if (window.netlifyIdentity) {
3332
window.netlifyIdentity.on("init", user => {

‎assets/js/mode-switcher.js‎

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,42 @@
1+
$(document).ready(()=> modeSwitcher() )
12

2-
(()=> { modeSwitcher()})();
3-
4-
function modeSwitcher() {
3+
if ( !localStorage.getItem('color-theme') ){
54
document.documentElement.setAttribute('data-theme', 'dark');
6-
sessionStorage.setItem('theme', 'dark');
75
}
6+
else{
7+
document.documentElement.setAttribute('data-theme', localStorage.getItem('color-theme'));
8+
}
9+
10+
/**
11+
* Page theme switching between *light* and *dark*
12+
*
13+
* Initialize page theme and set event handlers
14+
*/
15+
function modeSwitcher() {
16+
17+
switch ( localStorage.getItem('color-theme') ){
18+
case 'dark':
19+
$('.theme-toggle').removeAttr('checked');
20+
break;
21+
case 'light':
22+
$('.theme-toggle').attr('checked','');
23+
break;
24+
}
825

9-
// if (currentTheme === "dark") {
10-
// document.documentElement.setAttribute('data-theme', 'light');
11-
// sessionStorage.setItem('theme', 'light');
12-
// } else if (currentTheme === "light") {
13-
// document.documentElement.setAttribute('data-theme', 'dark');
14-
// sessionStorage.setItem('theme', 'dark');
15-
// }else{
16-
// document.documentElement.setAttribute('data-theme', 'dark');
17-
// sessionStorage.setItem('theme', 'dark');
18-
// }
19-
// }
26+
/*
27+
* dark-light mode-switcher
28+
* Change the icons inside the button based on previous settings
29+
*/
30+
$('.theme-toggle').off('click').on('click', function() {
31+
32+
// if exists and set via local storage previously
33+
if ($(document.documentElement).attr('data-theme') === "dark" ) {
34+
document.documentElement.setAttribute('data-theme', 'light');
35+
localStorage.setItem('color-theme', 'light');
36+
} else {
37+
document.documentElement.setAttribute('data-theme', 'dark');
38+
localStorage.setItem('color-theme', 'dark');
39+
}
40+
41+
});
42+
}

0 commit comments

Comments
 (0)