import type { Preferences } from './types';

/**
 * 更新基础 CSS 变量。
 */
function updateCSSVariables(preferences: Preferences) {
  const root = document.documentElement;
  if (!root) {
    return;
  }

  const theme = preferences?.theme ?? {};
  const { radius } = theme;

  root.classList.remove('dark');
  delete root.dataset.theme;

  // 更新圆角
  if (Reflect.has(theme, 'radius')) {
    document.documentElement.style.setProperty('--radius', `${radius}rem`);
  }

  // 更新字体大小
  if (Reflect.has(theme, 'fontSize')) {
    const fontSize = theme.fontSize;
    document.documentElement.style.setProperty(
      '--font-size-base',
      `${fontSize}px`,
    );
    document.documentElement.style.setProperty(
      '--menu-font-size',
      `${fontSize}px`,
    );
  }
}

export { updateCSSVariables };
