theme.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. let setCookie = function(name, value, days) {
  2. if (!name || !value) return false;
  3. let expires = '';
  4. let secure = '';
  5. if (location.protocol === 'https:') secure = 'Secure; ';
  6. if (days) {
  7. let date = new Date();
  8. date.setTime(date.getTime() + (days * 24*60*60*1000));
  9. expires = 'Expires=' + date.toUTCString() + '; ';
  10. }
  11. document.cookie = name + '=' + value + '; ' +
  12. expires +
  13. secure +
  14. 'sameSite=Lax; ' +
  15. 'domain=' + window.location.hostname + '; ' +
  16. 'path=/';
  17. return true;
  18. }
  19. let getCookie = function(name) {
  20. let match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
  21. if (match) return match[2];
  22. }
  23. $(document).ready(function() {
  24. /** Dark mode controller */
  25. if (getCookie('dark-mode') === "true") {
  26. document.documentElement.setAttribute('data-theme', 'dark');
  27. }
  28. $('[data-toggle="dark-mode"]').on('click', function () {
  29. if (getCookie('dark-mode') === "true") {
  30. setCookie('dark-mode', 'false', 30);
  31. return document.documentElement.setAttribute('data-theme', 'light')
  32. }
  33. setCookie('dark-mode', 'true', 30);
  34. document.documentElement.setAttribute('data-theme', 'dark')
  35. })
  36. });