msfjarvis.dev/assets/js/theme-switcher.js
Harsh Shandilya da43fb8493 #BlackLivesMatter
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
2020-06-02 02:19:40 +05:30

58 lines
1.7 KiB
JavaScript

const COLOR_MODE_KEY = '--color-mode';
const STORAGE_KEY = 'user-color-scheme';
const modeToggleButtonMobile = document.querySelector('.js-mode-toggle');
const modeToggleButtonDesktop = document.querySelector(
'.js-mode-toggle-desktop'
);
const applySetting = (passedSetting) => {
let currentSetting = passedSetting || localStorage.getItem(STORAGE_KEY);
if (currentSetting) {
document.documentElement.setAttribute(
'data-user-color-scheme',
currentSetting
);
}
};
const getCSSCustomProp = (propKey) => {
let response = getComputedStyle(document.documentElement).getPropertyValue(
propKey
);
if (response.length) {
response = response.replace(/\"/g, '').trim();
}
return response;
};
const toggleSetting = () => {
let currentSetting = localStorage.getItem(STORAGE_KEY);
switch (currentSetting) {
case null:
currentSetting =
getCSSCustomProp(COLOR_MODE_KEY) === 'dark' ? 'light' : 'dark';
break;
case 'light':
currentSetting = 'dark';
break;
case 'dark':
currentSetting = 'light';
break;
}
localStorage.setItem(STORAGE_KEY, currentSetting);
return currentSetting;
};
[modeToggleButtonDesktop, modeToggleButtonMobile].forEach((element) => {
element.addEventListener('click', (evt) => {
evt.preventDefault();
applySetting(toggleSetting());
});
});
applySetting();
BLMBadge.init({
layout: 1,
theme: 'dark',
promoText: 'Send a donation ' + String.fromCodePoint(0x2192),
promoLink: 'https://minnesotafreedomfund.org/',
message: 'To be silent is to be complicit. Black lives matter.',
title: '#BlackLivesMatter',
});