el código funciona en el servidor de safari en vivo, pero no en Chrome, y no en el sitio web en vivo, ya sea que se supone que debe guardar el color activo o el color deshabilitado en los íconos
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); }y me sale este error
TypeError: undefined is not an object (evaluating 'currentState[key][type]')