Sha256: eb50b5e30d5f6d0105aded6204d0b31dd630e398147323d8b742594bf7ee2935

Contents?: true

Size: 1.2 KB

Versions: 13

Compression:

Stored size: 1.2 KB

Contents

(() => {
  const cloneElement = (id) => ActiveElement.cloneElement('theme', id);

  window.addEventListener(ActiveElement.reloadEvent, () => {
    const themeSelect = document.querySelector('#theme-select');

    const setTheme = (theme) => {
      const themeSelectButtons = themeSelect.children;

      Object.entries(themeSelectButtons).forEach(([_, element]) => {
        if (element.dataset.themeSwitchTo === theme) {
          element.classList.add('d-none');
        } else {
          element.classList.remove('d-none');
        }
      });

      localStorage.setItem('active_element-theme', theme);
      document.querySelector('html').dataset.bsTheme = theme;
    };


    const initTheme = () => {
      const theme = localStorage.getItem('active_element-theme') || 'light';
      const themeSelectButtons = document.querySelector('#theme-select-buttons').children;

      Object.entries(themeSelectButtons).forEach(([_, element]) => {
        themeSelect.append(element);

        element.addEventListener('click', (ev) => {
          ev.preventDefault();
          setTheme(element.dataset.themeSwitchTo);
          return false;
        });
      });

      setTheme(theme);
    };

    initTheme();
  });
})();

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
active_element-0.0.31 app/assets/javascripts/active_element/theme.js
active_element-0.0.30 app/assets/javascripts/active_element/theme.js
active_element-0.0.29 app/assets/javascripts/active_element/theme.js
active_element-0.0.28 app/assets/javascripts/active_element/theme.js
active_element-0.0.27 app/assets/javascripts/active_element/theme.js
active_element-0.0.26 app/assets/javascripts/active_element/theme.js
active_element-0.0.24 app/assets/javascripts/active_element/theme.js
active_element-0.0.23 app/assets/javascripts/active_element/theme.js
active_element-0.0.22 app/assets/javascripts/active_element/theme.js
active_element-0.0.21 app/assets/javascripts/active_element/theme.js
active_element-0.0.19 app/assets/javascripts/active_element/theme.js
active_element-0.0.18 app/assets/javascripts/active_element/theme.js
active_element-0.0.17 app/assets/javascripts/active_element/theme.js