the code works in safari live server, but not in chrome, and not on live website either its suppose to save the active color or disabled color on the icons
const currentState = JSON.parse(localStorage.getItem("selectionState") || '{}');
const getKeyType = el => {
return [el.parentNode.id, el.dataset.type];
}
const populateState = el => {
[key, type] = getKeyType(el);
el.style.color = currentState[key][type] ? el.dataset.activeColor : el.dataset.disabledColor;
};
const clickity = function () {
[key, type] = getKeyType(this);
if (!currentState.hasOwnProperty(key)) {
currentState[key] = {type: false};
}
currentState[key][type] = !currentState[key][type];
populateState(this);
localStorage.setItem("selectionState", JSON.stringify(currentState));
}
const buttons = document.querySelectorAll("i");
for (const button of buttons) {
populateState(button);
button.addEventListener('click', clickity);
}
and I get this error
TypeError: undefined is not an object (evaluating 'currentState[key][type]')