import path from 'path';
import { getSVGNode } from './getSVGNode.mjs';

const scripts = `
  const LOCAL_NANE = '_dark_mode_theme_'
  const rememberedValue = localStorage.getItem(LOCAL_NANE);
  if (rememberedValue && ['light', 'dark'].includes(rememberedValue)) {
    document.documentElement.setAttribute('data-color-mode', rememberedValue);
  }
  const button = document.querySelector('#darkMode');
  button.onclick = () => {
    const theme = document.documentElement.dataset.colorMode;
    const mode = theme === 'light' ? 'dark' : 'light';
    document.documentElement.setAttribute('data-color-mode', mode);
    localStorage.setItem(LOCAL_NANE, mode);
  }
`;

const ICONS_PATH = path.resolve(process.cwd(), 'scripts/assets');

export function darkMode() {
  const iconSunPath = path.resolve(ICONS_PATH, `sun.svg`);
  const iconMoonPath = path.resolve(ICONS_PATH, `moon.svg`);
  const sunNode = getSVGNode(iconSunPath)
  const moonNode = getSVGNode(iconMoonPath)
  return [
    {
      type: 'element',
      tagName: 'button',
      properties: {
        id: 'darkMode',
        type: 'button'
      },
      children: [
        ...sunNode,
        ...moonNode
      ]
    }, {
      type: 'element',
      tagName: 'script',
      children: [{
        type: 'text',
        value: scripts,
      }]
    }
  ];
}